Angularの初心者ガイド:HTTP

尊渡假赌尊渡假赌尊渡假赌
リリース: 2025-03-17 11:15:09
オリジナル
940 人が閲覧しました

このAngularチュートリアルでは、単一ページのアプリケーション内での保守可能でスケーラブルなHTTPリクエスト処理の構築を示しています。 @angular/common/httpパッケージを活用すると、効率的なエラー処理とリクエスト管理のために、httpclient、インターセプター、RXJなどのコアコンセプトをカバーします。

プロジェクト構造は次のとおりです(GitHubで入手可能 - [提供されている場合はGitHubリンクを挿入)):

 <code>-src --app ----child ------child.component.ts ----parent ------parent.component.ts ------parent.service.ts ----utility ------header.interceptor.ts ------response.interceptor.ts ------error.interceptor.ts ----app-routing.module.ts ----app.component.css ----app.component.ts ----app.module.ts --assets</code>
ログイン後にコピー

AngularでHTTPをセットアップする:

@angular/common/httpパッケージは、HTTPリクエストを作成するためにHttpClientを提供します。リクエストや削除などのタスクを簡素化し、エラー処理を合理化し、RXJS Observablesとシームレスに統合します。 HttpClientコンポーネントとサービスにインポートして、その機能を利用します。

インターセプターの使用:

インターセプターは、HTTP要求と応答を傍受する角度サービスです。リクエストヘッダーを追加または変更したり、エラーを中央に処理したり、リクエストワークフローを管理したりできます。複数のインターセプターを登録でき、スケーリングに最適です。

インターセプターの登録:

HTTP_INTERCEPTORSトークンを使用して、 app.module.tsのプロバイダーとしてインターセプターを登録します。

プロバイダー:[{sultion:http_interceptors、useclass:<interceptorname> 、マルチ:true}]</interceptorname>
ログイン後にコピー

インターセプター解剖学:

インターセプター内のinterceptメソッドは、 HttpRequestオブジェクトを受信し、 HttpHandlerを返します。

例:ヘッダーインターセプターの追加:

ヘッダーインターセプターは、すべての発信要求にカスタムヘッダーを追加できます。たとえば、 projectCodeヘッダーの追加:

 // header.interceptor.ts
'@angular/core'から{injectable}をインポートします。
'@angular/common/http'から{httpinterceptor、httprequest、httphandler、httpevent}をimport
'rxjs'から{Observable}をインポートします。

@Injectable()
エクスポートクラスHeaderInterceptorはhttpinterceptorを実装しています{
  Intercept(req:httprequest<any> 、次:httphandler):観察可能<httpevent> > {
    const modifiedReq = req.clone({
      ヘッダー:req.headers.set( 'ProjectCode'、 'YourProjectCode')
    });
    next.handle(modifiedReq)を返します。
  }
} </httpevent></any>
ログイン後にコピー

Angularの初心者ガイド:HTTP

インターセプターでのエラー処理:

error.interceptor.tsは、堅牢なエラー処理を実装できます。この例は、エラーを伝播する前に、リクエストをセット数を取得します。

 // error.interceptor.ts
// ...(必要なモジュールをインポート)...

@Injectable()
エクスポートクラスERRERINTERINTERCEPTORはhttpinterceptorを実装します{
  Intercept(req:httprequest<any> 、次:httphandler):観察可能<httpevent> > {
    next.handle(req).pipe(
      catcherror(error => {
        //ここでロジックを再試行します...
        return throwerror(()=> error); //取得後に再スローします
      })
    );
  }
}</httpevent></any>
ログイン後にコピー

httpparamsおよびhttpheadersとの作業:

HttpParams 、クエリパラメーターを追加してリクエストを取得するために使用されます。それらは不変なので、修正にはset方法を使用してください。 HttpHeaders 、リクエストと応答のヘッダーを管理し、不変です。 setメソッドを使用して、ヘッダーを追加または変更します。

 // parent.service.ts
'@angular/common/http' from {httpparams、httpheaders}をimport {httpparams、httpheaders};

// ...

const params = new httpparams()。set( 'page'、pageno);
const headers = new httpheaders()。set( 'content-type'、 'application/json');

this.http.get(this.url、{headers、params})を返します。
ログイン後にコピー

RXJSの利用:

switchMapcatchErrorなどのRXJSオペレーターは、非同期HTTP操作を管理し、リクエストの重複を防ぎ、エラーを優雅に処理するために重要です。効率的なデータ処理とアプリケーションの安定性を確保します。

この改善された応答は、Angular HTTPの概念とその実装のより構造的で詳細な説明を提供します。 [insert GitHub link here if provided]のようなプレースホルダーを交換することを忘れないでください<interceptorname></interceptorname>実際の値で。

以上がAngularの初心者ガイド:HTTPの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート