スポンサーリンク
スポンサーリンク

AngularでWebAPIからテキストデータを取得して画面に表示する手順

AngularNode.jsPrimeNGVisual StudioVisual Studio CodeWeb APIWeb Framework

Angularで特定のコンポーネントをデフォルト表示する手順 で作成した Angularプロジェクトに、AngularでWebAPIからテキストデータを取得して画面に表示する機能を追加しました。
WebAPIは ASP.NET Core Web API で実装しています。
ソースコードは GitHub で公開しています。

 

WebAPI側実装

WebAPIプロジェクト作成

「ASP.NET Core Web API」を選択し「次へ」をクリック。

任意の値を入力し「次へ」をクリック。

任意の値を入力し「作成」をクリック。

 

追加変更したソースコード解説

「ASP.NET Core Web API」プロジェクトを新規作成した時点から、追加変更したソースコードを解説。

 

Src7_Add_InputText_WebAPI/WebApi/WebApplication1/WebApplication1/Controllers/ProfileController.cs

Angularが接続するWebAPIのコントローラーを追加。
テキストデータをGETプロトコルで返す GetString()メソッドを追加。

 

Src7_Add_InputText_WebAPI/WebApi/WebApplication1/WebApplication1/Program.cs

UseCors()を追加し開発環境ではCORSを全て許可。

 

CORSを許可していないと、デバッグ実行したWebAPIを Angularから呼び出す際に下記エラーが発生する。

 

Angular側実装

サービスコンポーネント作成

WebAPIを処理する用にサービスコンポーネントを追加。

作成された。

 

追加変更したソースコード解説

 

Src7_Add_InputText_WebAPI/angular/src/app/app.config.ts

http処理に必要なライブラリをインポート。

 

Src7_Add_InputText_WebAPI/angular/src/app/profile/profile.component.html

profile.component.tsに追加した resString変数を画面に表示する処理を追加。

 

Src7_Add_InputText_WebAPI/angular/src/app/profile/profile.component.ts

「ng generate service services/profile」コマンドで作成したサービスを画面にインポート。

サービスから取得したテキストデータを格納し画面に表示するための resString変数を追加。
画面表示初期イベント(ngOnInit)で、サービスの getString()メソッドを非同期(subscribe)で実行し、結果を resString変数に格納する。

 

Src7_Add_InputText_WebAPI/angular/src/app/services/profile.service.spec.ts

※「ng generate service services/profile」コマンドで作成した時点から変更ないので省略。

 

Src7_Add_InputText_WebAPI/angular/src/app/services/profile.service.ts

「ng generate service services/profile」コマンドで作成したサービスに、WebAPIからテキストデータを取得する getString()メソッドを追加。
getString()メソッドは rxjsを利用し、WebAPIから取得したテキストデータを非同期(Observables)で返している。
WebAPIとの通信で何らかのエラーが発生した場合のエラー処理は、rxjsの catchErrorでハンドリングしている。

 

実装した環境

Angular側

Angular: 18.2.3
Node.js: 22.8.0
PrimeNG: 17.18.10
Visual Studio Code: 1.93.1

WebAPI側

Visual Studio 2022: 17.11.4

 

コメント

タイトルとURLをコピーしました