この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>
インターセプターでのエラー処理:
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の利用:
switchMap
やcatchError
などのRXJSオペレーターは、非同期HTTP操作を管理し、リクエストの重複を防ぎ、エラーを優雅に処理するために重要です。効率的なデータ処理とアプリケーションの安定性を確保します。
この改善された応答は、Angular HTTPの概念とその実装のより構造的で詳細な説明を提供します。 [insert GitHub link here if provided]
のようなプレースホルダーを交換することを忘れないでください<interceptorname></interceptorname>
実際の値で。
以上がAngularの初心者ガイド:HTTPの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。