0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【C#】Blazorから外部APIを使用して天気情報を表示

Last updated at Posted at 2024-11-15

初めに

BlazorServerからOpenWeatherのAPIを読んで天気の情報を取得するアプリを作成しました。
もしよければ最後まで読んでいってください。

↓完成イメージ

↓ソース(実際に動かす場合にはAPIキーの取得が必要です)

↓使用したAPI

ポイント

本アプリのポイントを何点かご紹介します。ソースコードのすべてを説明するわけではないので、もし興味を持っていただけたら実際のコードを確認してただければ幸いです。

HTTP用のクライアントを依存性の注入で作成

APIと通信するためのHTTPクライアントを依存性の注入を用いてソースがら実行できるようにしました。Microsoftのチュートリアルあるあるだと思うのですがいろいろなパターンがのっているせいでどのパターンを使用すればいいかわからず、何気に時間がかかりました。

↓Program.cs

builder.Services.AddHttpClient();

↓WeatherPage.razor

@inject IHttpClientFactory HttpClientFactory

実際に通信する際には上記のファクトリーからクライアントを作成して通信を実施します。

APIキーをシークレットファイルに格納

APIを使用する際に必要なキーについて第3者に知られてしまうと悪用される可能性があるためソース上にハードコーディングやGitにコミットすることは厳禁です。

そのためシークレットファイルを用意してそちらに記載するのですがAsp.net Coreでは簡単に用意して通常のappsetting.jsonと同じ要領でアクセスすることができます。

設定方法については以下を参考にしました。

ドロップダウンリストを変更するたびに更新

APIキーに設定する都市についてInputSelectタグを用いて変更するとテーブルの値も変更されるようにしました。

このBlazorで提供されるInput~系のタグについてEditFormタグの内部でのみ使用できるようです。私は下記記事にたどり着けなかったらアプリ作成をあきらめてたかもしれないです。

課題(気が向けば修正したい)

データが取得できなかった場合の例外処理や、ネットワーク遮断時のリトライ処理

最後に

Blazorから外部のAPIを使用してデータを取得するアプリを作成してみました。
APIを使用するソースを触るときは何かの間違いでAPIキーがほかの人に見られる状態になっていないかドキドキします💦

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?