APIという単語。「これまでに何度も聞いたことあるし、使い方もなんとなくわかる。けど実際に使ったことはない」という人はいませんか?
モジュールも外部の機能を使うものですが、APIはモジュールに比べてなんとなく複雑な気がしてしまいますよね。
実際にAPIは、ものによって使い方が異なるため、難しいものだと思います。
そこで今回は、「APIを使う」という体験をしてみたい方に向けて、使い方が比較的簡単なAPIとその使い方をご紹介します。
初めて使うAPIとしておすすめのAPI
僕がおすすめする初めてのAPIはOpenWeatherMapというサイトの「Current Weather Data」というAPIです。
このAPIを使うと20万を超える市の現在の気象情報を手に入れることができます。
次の2つの理由から、初めてのAPIとしておすすめです。
- 基本的な使い方で使える
- 手に入れられるデータの構造がシンプル
ちなみに今回は、このAPIを使って「函館市」の気温を手に入れることを目標とします。
使用するプログラミング言語
Pythonというプログラミング言語を使用します。
理由は他の言語に比べて簡潔に記述できるのが特徴な言語であるためです。
他の言語でも同じ感じで使えるため、他の言語でやりたい方はぜひ試してみてください。
アカウントを作る
APIを使う際、データをとってくるWebサイトでアカウントを作る必要があることがほとんどです。
今回使うOpenWeatherMapのAPIも事前ににアカウントを作る必要あります。
そこで、OpenWeatherMapのトップページにある「Sign in」をクリックします。
すると、サインインのフォームが出てくるので、その下にある「Create an Account」をクリックします。
すると次のような入力フォームが出てきます。
「Username」や「Password」など、求められている情報を入力します。
途中ある次の2つのチェックボックスの横に書いてある項目を確認して、大丈夫であればチェックをつけてください。
ちなみに一つ目が「16歳以上である」で2つ目が「プライバシーポリシーなどに同意する」です。
最後に「私はロボットではありません」にチェックをつけてその下の「Create Account」を押してください。
すると「Company」や「Purpose」の項目があるポップアップメニューが表示されます。
会社での使用であれば、入力や選択の必要がありますが、そうでなければ✖️を押して消してください。
また、先ほど入力したメールアドレス宛に次のようなメールが来ていると思うので、「Verify your email」を押してください。
これでアカウント作成は完了です。
手に入れるデータを明確にしておく
APIを使う目的は基本的にWebサービスが持っているデータを利用することですが、利用したいデータがどんなデータなのかを明確にしておいてほうが、安心して作業を進められると思います。
そこで、まずは直接そのデータを確認しておきましょう。
OpenWeatherMapのトップページに戻って、メニューから自分のUser名を選択してください。先ほど「Sign in」という項目があった場所にあります。
選択するとメニューが表示されるので、その中から「My API keys」を選択します。
次に、Key と書かれた枠の中にAPIキーがあります。
APIキーは後で必要になるため、メモ帳などのテキストエディターに控えるかコピーしておきます。
そうしたら、ブラウザの新しいタブを開きます。
そのタブの中のURLを入力する部分(アドレスバー)に次のように入力してください。
api.openweathermap.org/data/2.5/weather?q={city name}&appid={APIキー}
{city name}が市名で{APIキー}は先ほど確認したAPIキーを入れます。
「{」や「}」は書かないようにしてください。
「函館」の気象情報を手に入れる場合は次のように書きます。
api.openweathermap.org/data/2.5/weather?q=Hakodate&appid=0123456789
(上のAPIキーは偽物です。ご自身のAPIキーを使ってください。)
入力するのはアドレスバーで、文字を入力する検索欄ではないことに注意してください。
アドレスバーに入力して検索すると、次のようなものが表示されると思います。
ここに表示されているものが、APIを使って手に入れることができる情報の本体です。
JSONという形式のデータになっています。
今回は気温を手に入れたいので、この中のtempにアクセスすればよさそうです。
モジュールをインストールする
PythonでAPIを使うために「requests」と「json」というモジュールをインストールします。
「コマンドプロンプト」や「ターミナル」などに次のように入力して実行します。
pip install requests
pip install json
もしかすると「jsonモジュール」の方はもうすでにインストールされている可能性があります。
PythonでAPIを使う
前置きが長くなってしまいましたが、ここから実際にAPIを使います。
次のようなPythonファイルを作ります。(API_KEYの部分にはご自身のAPIキーを入れます)
import requests
import json
city_name = "Hakodate"
API_KEY = "0123456789"
api = "http://api.openweathermap.org/data/2.5/weather?q={city}&APPID={key}"
url = api.format(city = city_name, key = API_KEY)
response = requests.get(url)
data = response.json() #JSONを読み込んで変数dataに入れる
temp = data['main']['temp'] #JSONの中から気温を指定して変数tempに入れる
print(temp) #気温の表示
これで現在の函館の気温を表示させることができます。
10行目を見てください。
temp = data['main']['temp'] #JSONの中から気温を指定して変数tempに入れる
代入演算子「=」右側はdataという辞書型の’main’プロパティの中にある’temp’というプロパティの値を取得するという意味です。
他のデータを撮る場合は先ほどブラウザで確認したJSONの構造を参考に、どのように書けばそのデータを取得できるか考えます。
下に今回手に入れたJSONの構造を表示しておきます。
{
"coord": {
"lon": 140.7367,
"lat": 41.7758
},
"weather": [
{
"id": 804,
"main": "Clouds",
"description": "overcast clouds",
"icon": "04n"
}
],
"base": "stations",
"main": {
"temp": 292.72,
"feels_like": 293.03,
"temp_min": 292.72,
"temp_max": 292.72,
"pressure": 1011,
"humidity": 88,
"sea_level": 1011,
"grnd_level": 1010
},
"visibility": 10000,
"wind": {
"speed": 6.3,
"deg": 100,
"gust": 8.93
},
"clouds": {
"all": 100
},
"dt": 1632919540,
"sys": {
"country": "JP",
"sunrise": 1632861079,
"sunset": 1632903812
},
"timezone": 32400,
"id": 2130188,
"name": "Hakodate",
"cod": 200
}
このAPIに関することを調べる
このAPIでは他にもできることがあります。このAPIについて説明があるので見てみるといいかもしれません。
OpenWeatherMapのトップページに戻って、メニューから「API」を選択してください。
次に「Current Weather Data」の「API doc」と書かれているボタンを押します。
表示されたページには、このAPIを使ってできることや、詳しい使い方が書かれています。
例えば、気温を「華氏(°F)」ではなく「華氏(°C)」で取得する方法や市名を「Hakodate」ではなく「函館」で取得する方法などが載っています。
コメント