本日はAPIの使い方を見ていきます。
Web開発に必須のWebAPIって聞いたことありますよね。
実務では当たり前のように使用するので、少しでも参考にしていただければ幸いです。
それでは下記サンプルコードを見ていきましょう!
サンプルコード
using System; using System.Xml.Linq; using System.Collections.Generic; using System.Net; using System.IO; using Newtonsoft.Json.Linq; namespace ConsoleApp { class Program { static void Main(string[] args) { String url = "http://api.openweathermap.org/data/2.5/weather?q=[Tokyoなど]&appid=[APIkey]"; //「url」の情報を持った「request」というインスタンスを生成 WebRequest request = WebRequest.Create(url); //上記のURLへの新しいリクエストを作成 Stream response = request.GetResponse().GetResponseStream(); //「response」の情報を持った「reader」というインスタンスを生成 StreamReader reader = new StreamReader(response); //JObject var json1 = JObject.Parse(reader.ReadToEnd()); Console.WriteLine(json1); } } }
出力結果
{"coord":{"lon":139.6917,"lat":35.6895},"weather":[{"id":801,"main":"Clouds","description":"few clouds","icon":"02d"}],"base":"stations","main":{"temp":283.15,"feels_like":283.15,"temp_min":281.85,"temp_max":284.73,"pressure":1005,"humidity":47},"visibility":10000,"wind":{"speed":0.45,"deg":111,"gust":0.45},"clouds":{"all":20},"dt":1640829908,"sys":{"type":2,"id":2001249,"country":"JP","sunrise":1640814627,"sunset":1640849788},"timezone":32400,"id":1850144,"name":"Tokyo","cod":200}
上記のようなサンプルコードを実行すれば出力結果が返ってきます。
サンプルコードの簡単な流れとしましては下記となります。
↓
色々な処理をする
↓
Jsonデータを出力する
それでは1つずつ内容をみていきましょう。
String url = "http://api.openweathermap.org/data/2.5/weather?q=[Tokyoなど]&appid=[APIkey]";
上記はhttpで始まるAPIの内容を「url」という変数に代入します。
上記APIkeyはOpenWeatherMapというサイトで入手出来、都市名とkeyをいれればその都市の天気データを入手できます。
アカウントは作る必要がありますが無料で利用出来ますので、是非ご利用ください。
WebRequest request = WebRequest.Create(url);
「url」の内容を「request」を生成し代入します。
「WebRequest.Create」とは指定した URI に新しい WebRequest のインスタンスを初期化するという意味です。
Stream response = request.GetResponse().GetResponseStream();
「request」の内容を「response」に代入します。
「request.GetResponse().GetResponseStream()」とはインターネット リソースからデータ ストリームを返します。
データストリームとはデータの流れを意味します。ここでは「request」の中身(データ)をresponseに入れていると考えていただければ大丈夫です。
StreamReader reader = new StreamReader(response);
「response」の内容を「reader」に代入します。
「StreamReader」とはテキストファイルを読み込む効果を持ちます。
ここでは「response」の中身(テキストファイルデータ)を「reader」に入れていると考えます。
var json1 = JObject.Parse(reader.ReadToEnd()); Console.WriteLine(json1);
ここでやっと読み込み、読み込んだデータをコンソールに出力します。
ポイントは「JObject.Parse」でjsonデータからデータを取得することが出来ます。
「ReadToEnd」とはテキストファイルの内容を一度に全て読み込みます。
「ReadToEnd」で読み込んだ代用を「JObject.Parse」で取得し、json1に代入します。
最後に「Console.WriteLine(json1)」でjsonを読み込んで、json1をコンソールに出力されます!
コメント