Angular 2 HttpサービスとRxJSを使用したAPIリクエストの作成は、Angular 1.xの約束事と非常によく似ています。
要求を行うには、 Httpクラスを使用します。 Httpクラスは、対応するメソッドを介してHTTPリクエストGET
、 POST
、 PUT
、 DELETE
、 PATCH
、 HEAD
リクエストを発行するメソッドを公開します。また、あらゆる種類のHTTP要求を発行するための汎用request
メソッドを公開しています。
Http
クラスのすべてのメソッドはObservable<Response>
返し、 RxJS操作を適用できます。 .subscribe()
メソッドを呼び出し、Observableストリームでデータが返されたときに呼び出される関数を渡します。
要求のObservableストリームには、 Response
、およびHTTP要求が正常に完了したときに完了/解決する、またはエラーが発生した場合はエラー/障害という1つの値のみが含まれます。
Http
モジュールから返されたオブザーバブルはコールドです。つまり、オブザーバブルに複数回サブスクライブすると、各サブスクリプションごとに1回だけ元のリクエストが実行されます。これは、アプリケーションの複数のコンポーネントで結果を使用する場合に発生します。 GETリクエストの場合、余分なリクエストが発生する可能性がありますが、PUTリクエストまたはPOSTリクエストを複数回購読すると、予期しない結果が発生する可能性があります。