この記事は、Angular CLIを使用してCRUDアプリを作成する方法に関するSitePoint Angular 2チュートリアルのパート3です。この記事では、アプリケーションを更新して、REST APIのバックエンドと通信します。
ステップバイステップのビデオコースを使用してAngularを学ぶことを好みますか? SitePoint PremiumでAngular 5を学ぶパート1 - TODOアプリケーションの最初のバージョンを起動して実行している
パート2 - Todosと単一のTodo
のリストを表示するための個別のコンポーネントを作成する- パート3 - TODOサービスを更新して、REST APIバックエンドと通信します
- パート4 - Angularルーターを使用してデータを解決します
- パート5 - 認証を追加してプライベートコンテンツを保護します
- パート6 - Angularプロジェクトを最新バージョンに更新する方法。
- このチュートリアルのパート1と2つのパートに従って、3つを意味する必要はありません。単にリポジトリのコピーをつかみ、パート2からコードをチェックアウトし、それを出発点として使用することができます。これについては、以下で詳しく説明しています。
- キーテイクアウト
- RXJSを使用してAngularのHTTPClientを利用して、REST APIと通信するときに非同期HTTP要求を効果的に処理します。 環境変数にAPI URLを保存して、コードを変更せずに開発環境と生産環境をシームレスに切り替えます。
遷移dodataservice in-memoryストレージからデータ操作のためにapiserviceの活用を活用し、観測可能性を使用して非同期パターンに適応します。
AppComponentを更新して、Apiserviceによって返された観測可能性を管理し、コンポーネントがデータの変更に非同期に反応するようにします。
Angularアプリケーションテストセットアップを構成して、Apiserviceなどの必要なサービスを含め、非同期テストシナリオを効果的に処理します。
- クイック要約
- パート2の終わりにアプリケーションアーキテクチャがどのように見えるかは次のとおりです。
-
現在、TododataServiceはすべてのデータをメモリに保存しています。この3番目の記事では、代わりにREST APIのバックエンドと通信するようにアプリケーションを更新します。
:- モックレストAPIバックエンドを作成します
- API URLを環境変数として保存します
- APISERVICEを作成して、REST APIバックエンドと通信します
- TododataServiceを更新して、新しいApiservice
- を使用します AppComponentを更新して、非同期API呼び出しを処理します
- ユニットテストを実行するときに実際のHTTP呼び出しを避けるためにApimockServiceを作成します。
この記事の終わりまでに、あなたは理解するでしょう:
環境変数を使用してアプリケーション設定を保存する方法
- Angular HTTPクライアントを使用してHTTPリクエストを実行する方法
- 角度HTTPクライアントによって返される観測可能性に対処する方法
- ユニットテストを実行するときに実際のhttpリクエストを行わないようにHTTPコールをmockする方法。
- それでは、始めましょう!
その後、パート2からコードのコピーが必要になります。これはGitHubで利用できます。このシリーズの各記事には、リポジトリに対応するタグがあるため、アプリケーションの異なる状態を前後に切り替えることができます。
パート2で終了し、この記事で始めたコードは、パート2としてタグ付けされています。この記事を終了するコードは、パート3としてタグ付けされています。<span>npm install -g @angular/cli@latest </span>
特定のコミットIDのエイリアスのようなタグを考えることができます。 Git Checkoutを使用してそれらを切り替えることができます。詳細については、こちらをご覧ください
だから、起き上がって実行するには(角度CLIの最新バージョンインストール)これを行います。npm uninstall -g @angular/cli angular-cli npm cache clean <span>npm install -g @angular/cli@latest </span>
その後、http:// localhost:4200/にアクセスしてください。すべてが順調であれば、動作するTODOアプリが表示されるはずです。
REST APIバックエンドのセットアップ
json-serverを使用して、モックバックエンドをすばやくセットアップしましょう。 アプリケーションのルートから実行:
<span>git clone git@github.com:sitepoint-editors/angular-todo-app.git </span><span>cd angular-todo-app </span><span>git checkout part-2 </span><span>npm install </span>ng serve
最後に、パッケージにスクリプトを追加して、バックエンドを開始するために:
これは次のものを表示する必要があります
<span>npm install json-server --save </span>
それだけです!ポート3000で聴いているレストAPIバックエンドがあります。<span>{ </span> <span>"todos": [ </span> <span>{ </span> <span>"id": 1, </span> <span>"title": "Read SitePoint article", </span> <span>"complete": false </span> <span>}, </span> <span>{ </span> <span>"id": 2, </span> <span>"title": "Clean inbox", </span> <span>"complete": false </span> <span>}, </span> <span>{ </span> <span>"id": 3, </span> <span>"title": "Make restaurant reservation", </span> <span>"complete": false </span> <span>} </span> <span>] </span><span>} </span>
次のエンドポイントがサポートされています:
- get /todos:既存のすべてを取得します
- get /todos /:id:既存のtodo を取得します
- post /todos:新しいtodo を作成します
- put /todos /:id:既存のtodo を更新します
- delete /todos /:id:既存のtodo を削除します
したがって、ブラウザをhttp:// localhost:3000/todosにナビゲートすると、db.jsonのすべてのtodosでJSON応答が表示されます。
JSON-Serverの詳細については、JSON-Serverを使用してMock Rest APIをチェックしてください。 API URLの保存バックエンドを所定の位置に置いたので、AngularアプリケーションにURLを保存する必要があります。
理想的には、これができるはずです:URLを1つの場所に保存して、その値を変更する必要がある場合に1回だけ変更する必要があるように
- 開発中にアプリケーションを開発中に開発APIに接続し、生産中の生産APIに接続します。
- 幸いなことに、Angular CLIは環境をサポートします。デフォルトでは、2つの環境があります。両方とも、対応する環境ファイルの両方を備えています:SRC/環境/環境と 'SRC/環境/環境。
- API URLを両方のファイルに追加しましょう:
<span>npm install -g @angular/cli@latest </span>
しかし、ng serve -environment prodまたはng build -environment prodを実行すると、角度はsrc/環境/環境で指定された値を使用します。npm uninstall -g @angular/cli angular-cli npm cache clean <span>npm install -g @angular/cli@latest </span>
これは、コードを変更することなく、開発と生産に異なるAPI URLを使用するために必要なものです。 この記事シリーズのアプリケーションは生産でホストされていないため、開発と生産環境で同じAPI URLを指定します。これにより、すべてが予想どおりに機能するかどうかを確認するために、ng serve -environment prodまたはng build -environment製品をローカルに実行できます。<span>git clone git@github.com:sitepoint-editors/angular-todo-app.git </span><span>cd angular-todo-app </span><span>git checkout part-2 </span><span>npm install </span>ng serve
.Angular-cli.jsonでDEVとPRODとそれらの対応する環境ファイルの間のマッピングを見つけることができます:キーを追加することでステージングなどの追加の環境を作成することもできます。
および対応する環境ファイルの作成。
Angular CLI環境の詳細については、究極のAngular CLIリファレンスガイドを確認してください。 環境にAPI URLが保存されているので、REST APIのバックエンドと通信するための角度サービスを作成できます。 REST APIバックエンドと通信するためのサービスを作成
Angular CLIを使用してApiServiceを作成して、REST APIバックエンドと通信しましょう。
<span>npm install json-server --save </span>
これにより、次の出力が得られます<span>npm install -g @angular/cli@latest </span>
- module app.module.tsオプションは、Angular CLIにサービスを作成するだけでなく、app.module.ts。
で定義されたAngularモジュールのプロバイダーとして登録するように指示します。を開きましょう npm uninstall -g @angular/cli angular-cli npm cache clean <span>npm install -g @angular/cli@latest </span>
次に、環境とAngularの組み込みのHTTPサービスを注入します:<span>git clone git@github.com:sitepoint-editors/angular-todo-app.git </span><span>cd angular-todo-app </span><span>git checkout part-2 </span><span>npm install </span>ng serve
必要な方法を実装する前に、AngularのHTTPサービスを見てみましょう。 構文に不慣れな場合は、プレミアムコースを購入して、タイプスクリプトを紹介してみませんか。角度HTTPサービス Angular HTTPサービスは、 @angular/httpから注入可能なクラスとして利用できます。
HTTPリクエストを実行するには、次のメソッドが利用可能です
delete(url、options):削除要求を実行します
get(url、options):get request
を実行しますhead(url、options):ヘッドリクエストを実行します
- オプション(url、options):オプションリクエストを実行します
- patch(url、body、options):パッチリクエストを実行します
- post(url、body、options):post request
- を実行します put(url、body、options):put requestを実行します
- これらのメソッドのそれぞれは、rxjsの観測可能なものを返します。
- Angularjs 1.x HTTPサービスメソッドとは対照的に、約束を返しましたが、Angular HTTPサービスメソッドは観測品を返します。 RXJS Observablesにまだ馴染みがない場合でも心配しないでください。アプリケーションを稼働させるためには基本が必要です。アプリケーションがそれらを必要とし、ReactivexのWebサイトが素晴らしいドキュメントを提供するときに、利用可能なオペレーターについて徐々に詳しく知ることができます。
- 観測可能性について詳しく知りたい場合は、RXJを使用した機能的リアクティブプログラミングの紹介をチェックする価値があるかもしれません。
- Apiserviceメソッドの実装
get /todos /:id:既存のtodo
を取得します post /todos:新しいtodo を作成します- put /todos /:id:既存のtodo を更新します
- delete /todos /:id:既存のtodoを削除します
- 必要なメソッドとそれらの対応する角度HTTPメソッドの大まかなアウトラインを既に作成できます:
-
getalltodos()
getAlltodos()メソッドにより、APIからすべてのTODOを取得できます: -
これにより、観察可能なものが返されます。
次に、APIからの応答をTODOオブジェクトの配列に変換するために、観察可能なマップ()メソッドを呼び出します。<span>npm install -g @angular/cli@latest </span>
着信HTTP応答は文字列であるため、最初にresponse.json()を呼び出して、JSON文字列を対応するJavaScript値に解析します。
次に、API応答のTODOの上にループし、TODOインスタンスの配列を返します。 MAP()のこの2回目の使用は、RXJSオペレーターではなく、array.prototype.map()を使用していることに注意してください。
最後に、エラーハンドラーを添付して、潜在的なエラーをコンソールにログに記録します。npm uninstall -g @angular/cli angular-cli npm cache clean <span>npm install -g @angular/cli@latest </span>
このコードを実行する前に、RXJSライブラリから必要な依存関係をインポートする必要があります。<span>git clone git@github.com:sitepoint-editors/angular-todo-app.git </span><span>cd angular-todo-app </span><span>git checkout part-2 </span><span>npm install </span>ng serve
アプリケーションでは、観察可能なクラスをインポートします:<span>npm install json-server --save </span>
コードが必要とする3つの演算子をインポートします:オペレーターのインポートにより、観察可能なインスタンスが対応するメソッドが付属していることを保証します。
コードに「rxjs/add/operator/map」をインポートしていない場合、次のものは機能しません。<span>{ </span> <span>"todos": [ </span> <span>{ </span> <span>"id": 1, </span> <span>"title": "Read SitePoint article", </span> <span>"complete": false </span> <span>}, </span> <span>{ </span> <span>"id": 2, </span> <span>"title": "Clean inbox", </span> <span>"complete": false </span> <span>}, </span> <span>{ </span> <span>"id": 3, </span> <span>"title": "Make restaurant reservation", </span> <span>"complete": false </span> <span>} </span> <span>] </span><span>} </span>
これは、this.http.getによって返される観測可能なものがmap()メソッドを持っていないためです。
アプリケーションで対応する観測可能な方法をグローバルに有効にするために、オペレーターを1回インポートする必要があります。ただし、それらを複数回インポートすることは問題ではなく、結果のバンドルサイズが増加しません。<span>"scripts": { </span> <span>... </span> <span>"json-server": "json-server --watch db.json" </span><span>} </span>
gettodobyid()<span>npm run json-server </span>
createTodo()次に、応答をTODOオブジェクトに変換します:
<span>\{^_^}/ hi! </span> Loading db.json Done Resources http://localhost:3000/todos Home http://localhost:3000
updateTodo()
updateTodo()メソッドを使用すると、単一のtodoを更新できます。
最初にAPIにプットリクエストを実行し、2番目の引数としてデータを渡す
<span>// src/environments/environment.ts </span><span>// used when we run `ng serve` or `ng build` </span><span>export const environment = { </span> production<span>: false, </span> <span>// URL of development API </span> apiUrl<span>: 'http://localhost:3000' </span><span>}; </span>
次に、応答をTODOオブジェクトに変換します:<span>// src/environments/environment.prod.ts </span><span>// used when we run `ng serve --environment prod` or `ng build --environment prod` </span><span>export const environment = { </span> production<span>: true, </span> <span>// URL of production API </span> apiUrl<span>: 'http://localhost:3000' </span><span>}; </span>
deletetodobyid()<span>import { environment } from 'environments/environment'; </span> <span>// we can now access environment.apiUrl </span><span>const API_URL = environment.apiUrl; </span>
最初にAPIへの削除要求を実行します:
次に、応答をnull:
に変換します<span>"environments": { </span> <span>"dev": "environments/environment.ts", </span> <span>"prod": "environments/environment.prod.ts" </span><span>} </span>
ここで応答を変換する必要はなく、このラインを除外する可能性があります。削除リクエストを実行したときにAPIがデータを返す場合、応答を処理する方法をアイデアするだけで含まれています。
APIServiceの完全なコード:<span>"environments": { </span> <span>"dev": "environments/environment.ts", </span> <span>"staging": "environments/environment.staging.ts", </span> <span>"prod": "environments/environment.prod.ts" </span><span>} </span>
<span>npm install -g @angular/cli@latest </span>
apiserviceが整ったので、それを使用して、TododataServiceをREST APIのバックエンドと通信させることができます。
dododataserviceの更新npm uninstall -g @angular/cli angular-cli npm cache clean <span>npm install -g @angular/cli@latest </span>
dododataserviceをレストAPIのバックエンドと通信させるには、新しいapiserviceを注入する必要があります。また、その方法を更新して、すべての作業をAPIServiceの対応するメソッドに委任します。
<span>git clone git@github.com:sitepoint-editors/angular-todo-app.git </span><span>cd angular-todo-app </span><span>git checkout part-2 </span><span>npm install </span>ng serve
データロジックが残りのAPIバックエンドによって処理されるため、新しいメソッドの実装はよりシンプルに見えます。ただし、重要な違いがあります。古い方法には同期コードが含まれており、すぐに値を返しました。更新された方法には非同期コードが含まれており、観察可能なものを返します。
これは、観測可能性を正しく処理するためにTododataServiceメソッドを呼び出すコードを更新する必要があることを意味します。<span>npm install json-server --save </span>
appComponentの更新約束と同様に、観測可能性は本質的に非同期であるため、それに応じて観察可能な応答を処理するためにコードを更新する必要があります。
現在tododataservice.getalltodos()メソッドをget dodos()に呼び出す場合:tododataservice.getalltodos()メソッドは、対応するapiservice.getalltodos()メソッドを呼び出します
<span>{ </span> <span>"todos": [ </span> <span>{ </span> <span>"id": 1, </span> <span>"title": "Read SitePoint article", </span> <span>"complete": false </span> <span>}, </span> <span>{ </span> <span>"id": 2, </span> <span>"title": "Clean inbox", </span> <span>"complete": false </span> <span>}, </span> <span>{ </span> <span>"id": 3, </span> <span>"title": "Make restaurant reservation", </span> <span>"complete": false </span> <span>} </span> <span>] </span><span>} </span>
これは、Angular HTTPサービスにHTTP Get Requestを実行するように指示します。<span>"scripts": { </span> <span>... </span> <span>"json-server": "json-server --watch db.json" </span><span>} </span>
実際のhttpリクエストは行われていません。<span>npm run json-server </span>
onnext:観察可能なものが新しい値を発するときに呼び出される関数
<span>\{^_^}/ hi! </span> Loading db.json Done Resources http://localhost:3000/todos Home http://localhost:3000
onerror:観察可能なときにエラーをスローするときに呼び出される関数<span>// src/environments/environment.ts </span><span>// used when we run `ng serve` or `ng build` </span><span>export const environment = { </span> production<span>: false, </span> <span>// URL of development API </span> apiUrl<span>: 'http://localhost:3000' </span><span>}; </span>
- ここで、OnAddTodo(TODO)メソッドを更新して、観察可能な応答も処理します。
-
再び、subscribe()メソッドを使用して、this.tododataservice.addtodo(todo)によって返された観測可能なものをサブスクライブし、応答が入ったときに、新しく作成されたtodoをTodosの現在のリストに追加します。 >
AppComponentが次のようになるまで、他の方法で同じ演習を繰り返します。
<span>npm install -g @angular/cli@latest </span>
それだけです。すべての方法は、Tododataserviceメソッドによって返される観測可能性を処理できるようになりました。 Angular HTTPサービスによって返される観察可能なものを購読するときに手動で登録する必要はないことに注意してください。 Angularは、メモリリークを防ぐためにすべてをクリーンアップします。すべてが期待どおりに機能しているかどうかを見てみましょう。 試してみてください
端子ウィンドウを開きます。
アプリケーションディレクトリのルートから、REST APIのバックエンドを開始します:
2番目の端子ウィンドウを開きます。
再び、アプリケーションディレクトリのルートから、Angularアプリケーションを提供してください:npm uninstall -g @angular/cli angular-cli npm cache clean <span>npm install -g @angular/cli@latest </span>
さあ、ブラウザをhttp:// localhost:4200。に移動します
すべてがうまくいった場合、これを見る必要があります:<span>git clone git@github.com:sitepoint-editors/angular-todo-app.git </span><span>cd angular-todo-app </span><span>git checkout part-2 </span><span>npm install </span>ng serve
すごい!私たちのアプリケーションは現在、REST APIバックエンドと通信しています!
サイドヒント:NPMを実行する場合は、JSON-ServerとNGサーブを同じ端末で実行します。複数の端末ウィンドウまたはタブを開くことなく、両方のコマンドを同時に実行することができます。
テストを実行してくださいユニットテストを実行して、すべてが期待どおりに機能していることを確認しましょう。
11個のユニットテストが失敗しているようです: なぜ私たちのテストが失敗しているのか、どのように修正できるかを見てみましょう。
単体テストの修正
最初に、src/todo-data.service.spec.tsを開きましょう
障害のある単体テストのほとんどは、データ処理のチェックに関係しています。これらのテストは、データ処理がTododataServiceの代わりにREST APIバックエンドによって実行されるため、もはや必要ありません。したがって、時代遅れのテストを削除しましょう。
ユニットテストを実行した場合、エラーが発生します:
<span>npm install json-server --save </span>
testbed.configuretestingModule()がテスト用の一時モジュールを作成し、一時モジュールのインジェクターがApiserviceを認識していないため、エラーがスローされます。インジェクターにApiserviceを認識させるには、testbed.configuretestingmodule():
> configuretestingmoduleに渡される構成オブジェクトのプロバイダーとしてApiserviceをリストすることにより、一時モジュールに登録する必要があります。ユニットテストを実行するときにテストランナーを実際のAPIに接続したくないので、ユニットテストで実際のAPIServiceをock笑するApimockServiceを作成しましょう。
apimockserviceの作成<span>{ </span> <span>"todos": [ </span> <span>{ </span> <span>"id": 1, </span> <span>"title": "Read SitePoint article", </span> <span>"complete": false </span> <span>}, </span> <span>{ </span> <span>"id": 2, </span> <span>"title": "Clean inbox", </span> <span>"complete": false </span> <span>}, </span> <span>{ </span> <span>"id": 3, </span> <span>"title": "Make restaurant reservation", </span> <span>"complete": false </span> <span>} </span> <span>] </span><span>} </span>
を生成しましょう<span>npm install -g @angular/cli@latest </span>
これは次のことを示しています:
npm uninstall -g @angular/cli angular-cli npm cache clean <span>npm install -g @angular/cli@latest </span>
次に、Apiserviceと同じ方法を実装しますが、HTTPリクエストを作成する代わりに、メソッドにモックデータを返してもらいます。
<span>git clone git@github.com:sitepoint-editors/angular-todo-app.git </span><span>cd angular-todo-app </span><span>git checkout part-2 </span><span>npm install </span>ng serve
各メソッドが新鮮な新しいモックデータを返す方法に注目してください。これは少し反復的に思えるかもしれませんが、それは良い習慣です。あるユニットテストがモックデータを変更する場合、変更は別の単位テストでデータに影響を与えることはありません。ApimockServiceサービスができたので、ユニットテストのApiserviceをApimockServiceに置き換えることができます。
プロバイダーアレイでは、Apiserviceが要求されるたびにApimockServiceを提供するようインジェクターに指示します。
ユニットテストを再実行すると、エラーがなくなります。素晴らしい!
ただし、さらに2つの失敗したテストがあります。<span>npm install json-server --save </span>
エラーは、修正したばかりのエラーに似ています。を開いてみましょう テストは、http!のプロバイダーなしでメッセージで失敗します。http。 再び、HTTPサービスが実際のHTTPリクエストを送信することは望ましくないため、Angularのモックバックエンドを使用する模擬HTTPサービスをインスタンス化します:
<span>{ </span> <span>"todos": [ </span> <span>{ </span> <span>"id": 1, </span> <span>"title": "Read SitePoint article", </span> <span>"complete": false </span> <span>}, </span> <span>{ </span> <span>"id": 2, </span> <span>"title": "Clean inbox", </span> <span>"complete": false </span> <span>}, </span> <span>{ </span> <span>"id": 3, </span> <span>"title": "Make restaurant reservation", </span> <span>"complete": false </span> <span>} </span> <span>] </span><span>} </span>
テストモジュールを構成しても少し圧倒的に見えても心配しないでください。
角度アプリケーションをテストするための公式ドキュメントでユニットテストのセットアップについて詳しく知ることができます。 最終エラーを修正するには、
<span>"scripts": { </span> <span>... </span> <span>"json-server": "json-server --watch db.json" </span><span>} </span>
を開いてみましょう <span>npm run json-server </span>
<span>\{^_^}/ hi! </span> Loading db.json Done Resources http://localhost:3000/todos Home http://localhost:3000
角度アプリケーションをREST APIのバックエンドに正常に接続しました。アプリケーションを生産環境に展開するには、今すぐ実行できます:
<span>// src/environments/environment.ts </span><span>// used when we run `ng serve` or `ng build` </span><span>export const environment = { </span> production<span>: false, </span> <span>// URL of development API </span> apiUrl<span>: 'http://localhost:3000' </span><span>}; </span>
また、生成されたdistディレクトリをホスティングサーバーにアップロードします。それはどれほど甘いですか?<span>// src/environments/environment.prod.ts </span><span>// used when we run `ng serve --environment prod` or `ng build --environment prod` </span><span>export const environment = { </span> production<span>: true, </span> <span>// URL of production API </span> apiUrl<span>: 'http://localhost:3000' </span><span>}; </span>
要約
最初の記事では、次の方法を学びました
Angular Cliを使用してTODOアプリケーションを初期化します
個々のTODOを表すためにTODOクラスを作成します<span>import { environment } from 'environments/environment'; </span> <span>// we can now access environment.apiUrl </span><span>const API_URL = environment.apiUrl; </span>
を作成、更新、削除しますAppComponentコンポーネントを使用して、ユーザーインターフェイスを表示
に表示しますアプリケーションをgithubページに展開します。
- のリストを表示します
- 単一のtodo を表示するtodolistitemcomponent
- 新しいtodo を作成するdolistheadeadercomponent
- Todolistfootercomponentが残っているのかを示します
- この3番目の記事では、
- ock rest api back end を作成しました
- API URLを環境変数として保存しました
- 残りのAPIバックエンドと通信するためにAPIServiceを作成しました
- TododataServiceを更新して、新しいApiservice を使用しました
- AppComponentを更新して、非同期API呼び出しを処理します
- ユニットテストを実行するときに実際のHTTP呼び出しを避けるためにApimockServiceを作成しました。
- Angular HTTPクライアントを使用してHTTPリクエストを実行する方法
- 角度HTTPクライアントによって返される観測可能性に対処する方法
- 単位テストを実行するときに実際のHTTPリクエストを回避するためにHTTPコールを模倣する方法。
- この記事のすべてのコードは、githubで入手できます。 パート4では、ルーターとリファクタルAppComponentを導入して、ルーターを使用してバックエンドからTODOを取得します。
を学びました
- 環境変数を使用してアプリケーション設定を保存する方法
angularおよびrxjs APIサービスに関するよくある質問(FAQ) Angular APIサービスにおけるRXJSの役割は何ですか?
RXJSは、JavaScriptのリアクティブな拡張機能の略であり、観測可能性を使用するリアクティブプログラミングのライブラリであり、非同期またはコールバックベースの構成を容易にします。コード。 Angular APIサービスのコンテキストでは、RXJSは非同期操作の処理において重要な役割を果たします。これは、複数の非同期操作を管理し、エラーを処理し、さらには操作をキャンセルすることを可能にする観測可能性を作成して作業する方法を提供します。これにより、HTTPリクエストを操作するための強力なツールになります。これは、本質的に非同期です。
エラー処理は、あらゆるアプリケーションの重要な部分です。 Angular APIサービスでは、RXJSのCatcherRorオペレーターを使用してエラーを処理できます。このオペレーターは、観察可能なエラーをキャッチし、それを処理するか、新しい観測可能なものを返すことができます。エラーをスローする可能性のある方法の後、観察可能なパイプ方法で使用できます。 Angular APIサービスでリクエストをキャンセルするにはどうすればよいですか?
Angular APIサービスでは、サブスクリプションオブジェクトの登録解除メソッドを使用してリクエストをキャンセルできます。 Observableを購読すると、サブスクリプションオブジェクトを返します。このオブジェクトには、サブスクリプションをキャンセルするために呼び出すことができる登録解除メソッドがあり、その結果、HTTPリクエスト。 、RXJSからのオペレーターを再試行または再試行して、失敗した要求を再試行できます。 Retryオペレーターは、HTTP要求を効果的に繰り返し、Observableに再サブスクライブします。 Retryのオペレーターを使用すると、リクエストを再試行するための条件を定義できます。 RXJSからの関数。この関数は、観測可能性の配列を取得し、入力観測器の結果の配列を放出する新しい観測可能なものを返します。 Angular APIサービスでは、RXJSのマップ演算子を使用して応答データを変換できます。このオペレーターは、観察可能なものによって放出される各アイテムに特定の関数を適用し、結果を発する新しい観測可能なものを返します。 Angular APIサービスでは、HTTPClientモジュールのPOSTメソッドを使用してデータをサーバーに送信できます。このメソッドは、サーバーのURLとデータをパラメーターとして送信するようにし、登録できる観測可能を返します。 > Angular APIサービスでは、HTTPClientモジュールのPUTメソッドを使用してサーバー上のデータを更新できます。このメソッドは、サーバーのURL、更新するデータ、およびオプションでリクエストのオプションをパラメーターとして使用し、サブスクライブできる観測可能なものを返します。 Angular API Service?
以上がAngularおよびRXJS:REST APIのバックエンドの追加の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

PythonとJavaScriptの主な違いは、タイプシステムとアプリケーションシナリオです。 1。Pythonは、科学的コンピューティングとデータ分析に適した動的タイプを使用します。 2。JavaScriptは弱いタイプを採用し、フロントエンドとフルスタックの開発で広く使用されています。この2つは、非同期プログラミングとパフォーマンスの最適化に独自の利点があり、選択する際にプロジェクトの要件に従って決定する必要があります。

PythonまたはJavaScriptを選択するかどうかは、プロジェクトの種類によって異なります。1)データサイエンスおよび自動化タスクのPythonを選択します。 2)フロントエンドとフルスタック開発のためにJavaScriptを選択します。 Pythonは、データ処理と自動化における強力なライブラリに好まれていますが、JavaScriptはWebインタラクションとフルスタック開発の利点に不可欠です。

PythonとJavaScriptにはそれぞれ独自の利点があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1. Pythonは、データサイエンスやバックエンド開発に適した簡潔な構文を備えた学習が簡単ですが、実行速度が遅くなっています。 2。JavaScriptはフロントエンド開発のいたるところにあり、強力な非同期プログラミング機能を備えています。 node.jsはフルスタックの開発に適していますが、構文は複雑でエラーが発生しやすい場合があります。

javascriptisnotbuiltoncorc;それは、解釈されていることを解釈しました。

JavaScriptは、フロントエンドおよびバックエンド開発に使用できます。フロントエンドは、DOM操作を介してユーザーエクスペリエンスを強化し、バックエンドはnode.jsを介してサーバータスクを処理することを処理します。 1.フロントエンドの例:Webページテキストのコンテンツを変更します。 2。バックエンドの例:node.jsサーバーを作成します。

PythonまたはJavaScriptの選択は、キャリア開発、学習曲線、エコシステムに基づいている必要があります。1)キャリア開発:Pythonはデータサイエンスとバックエンド開発に適していますが、JavaScriptはフロントエンドおよびフルスタック開発に適しています。 2)学習曲線:Python構文は簡潔で初心者に適しています。 JavaScriptの構文は柔軟です。 3)エコシステム:Pythonには豊富な科学コンピューティングライブラリがあり、JavaScriptには強力なフロントエンドフレームワークがあります。

JavaScriptフレームワークのパワーは、開発を簡素化し、ユーザーエクスペリエンスとアプリケーションのパフォーマンスを向上させることにあります。フレームワークを選択するときは、次のことを検討してください。1。プロジェクトのサイズと複雑さ、2。チームエクスペリエンス、3。エコシステムとコミュニティサポート。

はじめに私はあなたがそれを奇妙に思うかもしれないことを知っています、JavaScript、C、およびブラウザは正確に何をしなければなりませんか?彼らは無関係であるように見えますが、実際、彼らは現代のウェブ開発において非常に重要な役割を果たしています。今日は、これら3つの間の密接なつながりについて説明します。この記事を通して、JavaScriptがブラウザでどのように実行されるか、ブラウザエンジンでのCの役割、およびそれらが協力してWebページのレンダリングと相互作用を駆動する方法を学びます。私たちは皆、JavaScriptとブラウザの関係を知っています。 JavaScriptは、フロントエンド開発のコア言語です。ブラウザで直接実行され、Webページが鮮明で興味深いものになります。なぜJavascrを疑問に思ったことがありますか


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール
