はじめに
こんばんは!今回はほぼ素人の私が、先輩に教わった通りAPIを使えるのか、一人で復習がてら実践記事にしたいと思います!
開発環境
OS:Windows11
言語:Python 3.12.4
ライブラリ:python-dotenv 1.0.1, requests 2.32.3
APIとは?
そもそもAPIがどういうものなのか、あんまりしっくりきていなかったので、改めて調べてみました。
APIとは「アプリケーション・プログラミング・インターフェース」の略で、簡単に言えば、異なるソフトウェアやサービス同士が会話をするための「共通言語」や「取り決め」のようなものです。
日常生活の例で説明すると:
レストランのメニュー:
APIはレストランのメニューのようなものです。お客さん(アプリケーション)は、メニュー(API)を見て、どんな料理(機能やデータ)が提供されているかを知り、注文(リクエスト)することができます。
電気のコンセント:
世界中の電化製品は、決められた形状のプラグを使ってコンセントに接続します。APIは、このコンセントのような役割を果たし、異なるソフトウェア同士を「つなぐ」ための標準化された接続点となります。
通訳者:
異なる言語を話す人々の間で通訳者が意思疎通を助けるように、APIは異なるソフトウェア間でデータやコマンドを「翻訳」し、相互理解を可能にします。
APIの実際の使用例:
スマートフォンアプリが天気予報を表示する際、気象サービスのAPIを使用してデータを取得しています。
ウェブサイトに地図を埋め込む際、Google MapsのAPIを利用しています。
SNSアプリで他のアプリと連携してログインする際、そのSNSのAPIを使用しています。
つまり、APIは異なるソフトウェアやサービスが互いに情報をやり取りし、協力して機能するための「橋渡し」の役割を果たしているのです。
AI先生に聞いたらわかりやすいめに教えてくれました!
とにかく「つないでいるもの」なのですね。
準備
- 旅旅APIにアクセスする。(https://tabi2api.docs.apiary.io/#introduction)
- 左側のメニューから「認証」を選んでリンク先に飛ぶ。(トークンを発行するため)
- 適当なところにフォルダを作って、中に「.env」というファイルを作る。
- VScodeとかで作った.envファイルを開いて、中に次のコードを書き込む。
API_TOKEN = (さっき発行したAPIトークン)
これで準備OK!あとはやるだけ!
手順
- さっき作ったフォルダ内に「○○.py」というファイルを作る。(○○は好きな名前をつける。テキストドキュメントを作る、みたいなコマンドで.txtも消して新しい名前にしよう)
- 旅旅APIのページから、秘境駅ランキングを選択して、一覧取得を押す。ページにこんな感じで表示されるはず↓
- 右側の黒い部分の「秘境駅ランキング」から、コードの一番下までまるごとコピーする。
- まるごとChatGPTなどの生成AIに投げて、「pythonでこのAPIを実行したいです。.envを使います。」とか指示する。
- 出てきたコードをそれぞれコピペする。今回実行したコードはこちら。
import os
import requests
from dotenv import load_dotenv
# .envファイルから環境変数を読み込む
load_dotenv()
# APIのエンドポイントURL
url = "https://app.livlog.xyz/webapi/v2/hikyoeki/ranking?prefCd=23&population=100&trainCnt=20"
# 環境変数からトークンを取得
api_token = os.getenv("API_TOKEN")
headers = {
"Accept": "application/json",
"Authorization": f"Bearer {api_token}",
}
# GETリクエストを送信
response = requests.get(url, headers=headers)
# レスポンスのステータスコードを確認
if response.status_code == 200:
# リクエストが成功した場合、JSONデータを取得
data = response.json()
# 結果を処理
for station in data["results"]:
print(f"駅名: {station['stationName']}")
print(f"都道府県: {station['prefName']}")
print(f"市区町村: {station['cityName']}")
print(f"路線名: {station['lineName']}")
print("---")
else:
print(f"エラー: ステータスコード {response.status_code}")
print(response.text)
- 以下のコマンドでコンソールからファイルを呼び出して、正しく動作するか確認する。
python ○○.py
○○は自分でつけた名前です。成功していれば以下のように表示されるはず。
以上です!自力でAPIを叩いてみられましたでしょうか。
作業していると多々エラーが出るかとは思いますが、そこも生成AIに投げて質問してみましょう。
私はVScodeで書いたファイルを上書き保存を忘れてエラーになっていました。
以後気を付けます!ありがとうございました。