これまでのシリーズ記事
- Angularによるwebアプリ開発①~環境構築とコンポーネント作成
- AngularによるWebアプリ開発②~Angular Materialでマテリアルデザインを実装する
- AngularによるWebアプリ開発③~ngIfを使いこなす
- AngularによるWebアプリ開発⑦~ngx-chartsで折れ線グラフをプロットする
Angularでhttp通信機能を実装する
今回はAngularでhttp通信を行い、APIなどを使用してwebからデータをスクレイピングする処理を実装していきたいと思います。
Angularでのhttp通信の処理は「httpclient」というモジュールを使用することで可能です。httpclientはAngularから元からインストールされているので、$npm install
は不要でapp.module.tsで読み込みを宣言するだけです。
# コンポーネントを作成する $ ng generate component ngapi-sample
<app-routing.module.ts>
import { NgModule } from "@angular/core"; import { Routes, RouterModule } from "@angular/router"; ~~~~ ~~~~ import { NgapiSampleComponent } from "./ngapi-sample/ngapi-sample.component";//これを追加 const routes: Routes = [ ~~~~ ~~~~ { path: "api-sample", component: NgapiSampleComponent },//これを追加 ]; @NgModule({ imports: [RouterModule.forRoot(routes)], exports: [RouterModule], }) export class AppRoutingModule {}
<app.module.ts>
import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { HttpClientModule } from '@angular/common/http'; //これを追加! @NgModule({ imports: [ BrowserModule, ~~~~ ~~~~ HttpClientModule, //これを追加! ], declarations: [ AppComponent, ], bootstrap: [ AppComponent ] }) export class AppModule {}
<ngapi-sample.component.ts>
import { Component, OnInit, Injectable } from "@angular/core"; import { HttpClient } from "@angular/common/http"; import { Observable, of, Subject } from "rxjs"; @Injectable({ providedIn: "root", }) class ApiData { data: string; } @Component({ selector: "app-ngapi-sample", templateUrl: "./ngapi-sample.component.html", styleUrls: ["./ngapi-sample.component.css"], }) export class NgapiSampleComponent implements OnInit { btcPrice: any = []; testData: any = new Subject(); constructor(private http: HttpClient) {} ngOnInit() { this.getBtcData(); setInterval(() => this.getBtcData(), 5000); } getBtcData() { this.http .get("https://public.bitbank.cc/btc_jpy/ticker") .subscribe((result: ApiData) => { this.btcPrice = result.data; console.log(this.btcPrice); }); } }
<ngapi-sample.component.html>
<p>現在のビットコイン価格は {{btcPrice.last }}円です</p>
「http://localhost:4200/api-sample」にアクセスすると以下のような画面が表示されます。
コメント