1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

秘境駅ランキングAPI叩いてみた

Last updated at Posted at 2024-10-10

はじめに

こんばんは!今回はほぼ素人の私が、先輩に教わった通り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先生に聞いたらわかりやすいめに教えてくれました!
とにかく「つないでいるもの」なのですね。

準備

  1. 旅旅APIにアクセスする。(https://tabi2api.docs.apiary.io/#introduction)
  2. 左側のメニューから「認証」を選んでリンク先に飛ぶ。(トークンを発行するため)
  3. 適当なところにフォルダを作って、中に「.env」というファイルを作る。
  4. VScodeとかで作った.envファイルを開いて、中に次のコードを書き込む。
    API_TOKEN = (さっき発行したAPIトークン)

これで準備OK!あとはやるだけ!

手順

  1. さっき作ったフォルダ内に「○○.py」というファイルを作る。(○○は好きな名前をつける。テキストドキュメントを作る、みたいなコマンドで.txtも消して新しい名前にしよう)
  2. 旅旅APIのページから、秘境駅ランキングを選択して、一覧取得を押す。ページにこんな感じで表示されるはず↓
    image.png
  3. 右側の黒い部分の「秘境駅ランキング」から、コードの一番下までまるごとコピーする。
  4. まるごとChatGPTなどの生成AIに投げて、「pythonでこのAPIを実行したいです。.envを使います。」とか指示する。
  5. 出てきたコードをそれぞれコピペする。今回実行したコードはこちら。
 
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) 
 
  1. 以下のコマンドでコンソールからファイルを呼び出して、正しく動作するか確認する。
python ○○.py

○○は自分でつけた名前です。成功していれば以下のように表示されるはず。
2024-10-10_14h26_06.png

以上です!自力でAPIを叩いてみられましたでしょうか。
作業していると多々エラーが出るかとは思いますが、そこも生成AIに投げて質問してみましょう。
私はVScodeで書いたファイルを上書き保存を忘れてエラーになっていました。
以後気を付けます!ありがとうございました。

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?