Pythonは世界で一番人気のあるプログラミング言語として、多くの開発者に利用されています。それでは、Python環境ではAPIを利用するには、どうしたらいいですか?本文では、PythonでAPIを扱う方法を皆さんに紹介します。初心者でも本文の内容を参照して、PythonでAPIを扱うことができます。
Apidogは個人向け完全無料なツールとして、便利にAPIの設計、ドキュメンテーション、テストを行えます。下記のボタンからこの無料ツールを取得しましょう👇👇👇
PythonでのAPI扱いについて
APIは現代アプリケーションの架け橋であるため、どのようなプログラミング言語でアプリを開発していても、APIを扱うことが非常に不可欠なことになると思います。それでは、PythonでAPIを扱うためには、どうしたらいいですか?実際には、PythonでAPIを扱う場合、標準ライブラリのurllib、またはrequestsモジュールを使うことが多いのです。
urllibはPython標準ライブラリのモジュールで、URLにアクセスするための基本的な関数が揃っています。requestsは第三者ライブラリですが、APIアクセスを簡単に書けるのでよく利用されます。
urllibとrequestsモジュールとの比較
urllibとrequestsモジュールもPythonでAPIを扱うためによく使われているライブラリになります。urllibはPython標準ライブラリのモジュールとはいえ、requestsモジュールに比べてたくさんのデメリットもあると考えられています。次は、urllibとrequestsの比較をテーブルでまとめていこうと思います:
比較項目 | urllib | requests |
---|---|---|
記述の簡潔さ | やや冗長なコードになりがち | シンプルで分かりやすい |
使いやすさ | 低レベルなのでそれなりにコードが必要 | APIが抽象化され使いやすい |
機能面 | 汎用性が高いが機能は基本的 | 高レベルなAPIで機能が豊富 |
認証 | 基本的な認証に対応 | 様々な認証に対応 |
エラー処理 | エラー内容が分かりにくい場合有 | エラー検知と情報取得がしやすい |
非同期リクエスト | 対応可能 | 非対応(同期のみ) |
その他 | 標準ライブラリなのでインストール不要 | pipでインストール必要 |
このように、urllibは低レベルだが汎用性が高く、requestsは使いやすさと機能面で優れています。現時点では、requestsモジュールはより主流のAPIリクエストライブラリになっている感じですね。
PythonのrequestsモジュールでAPIを扱う方法
それでは、この部分では、機能が優れていてより使いやすいrequestsモジュールを使って、PythonでAPIを扱う方法を皆さんに紹介します。
requestsモジュールをインストール
Requestsモジュールの利用を開始するには、まずはこのモジュールをインストールする必要があります。次のコマンドを実行することで、当該モジュールをインストールできます。
pip install requests
requestsモジュールをインポート
Requestsモジュールをインストールすると、Requestsライブラリを利用するにはそれをインポートします。
import requests
APIのエンドポイントを指定
urlフィールドを用いて、APIのエンドポイントを指定します。
url = 'https://api.example.com/data'
必要なパラメータを辞書で指定
paramsを用いて必須のパラメータを指定します。
params = {'key1': 'value1', 'key2': 'value2'}
リクエストを送信
response = requests.get(url, params=params)
レスポンスのステータスコードを確認
レスポンスのステータスコードを定義します。例えば次のコードは、ステータスコードが200の場合は、成功をプリントします。
if response.status_code == 200:
print('Success!')
レスポンスJSONをパース
レスポンスの形式をJSONに指定して、返せるように設定します。
data = response.json()
print(data)
完全の実行コードの例
そこで、上記のように各コンポーネントを結合して、完全なコードを実行すれば、APIとの通信を実現することができます。
requestsモジュールを使ってAPIにアクセスする完全な実行コードの例:
import requests
import json
# APIのエンドポイント
URL = "https://api.example.com/v1/users"
# パラメータ
PARAMS = {'key':'abcd1234'}
# リクエストを送信
res = requests.get(url = URL, params = PARAMS)
# ステータスコード確認
if res.status_code == 200:
print('Success!')
else:
print('Failed. status code: '+ str(res.status_code))
# JSONレスポンスを取得
data = json.loads(res.text)
print(data)
# 個別の値を参照
print("User Count:", data['count'])
print("First User ID:", data['users'][0]['id'])
以上のような手順で、Pythonとrequestsモジュールを使ってAPIのGETリクエストを簡単に扱うことができます。また、認証やPOSTリクエストなども同様のインターフェースで処理できます。
より便利にAPIをテストできるApidog
Pythonでどのようなモジュールを使ってAPIを扱うためにも、コーディング能力が必要となります。実際には、適切なツールを使用すると、ノーコードでもAPIを簡単にテストすることができます。そして、リクエストの情報を保存して、APIドキュメントを生成することもできるので、非常に便利です。
ステップ⒈Apidogを開き、「新しいAPI」、またh「新しいRequest」をクリックします。
ステップ⒉APIが使用するHTTPメソッドを選択した上、エンドポイントのURLを入力します。
ステップ⒊必要なパラメータなどの情報を記入して送信ボタンをクリックして、APIのリクエストを送信して、レスポンスを取得します。
以上の手順を参照して、APIを簡単にテストすることができます。また、「保存」ボタンをクリックして、今回のリクエストの情報を保存して、ドキュメントを生成することもできるので、非常に便利です。
ApidogでPythonのAPI実装コードも自動生成可能
また、上記の手順を参照して、リクエストの情報を保存すると、Pythonで正確に動作可能な実装コードが必要となる場合は、Apidogを使って、1クリックでそれを生成することができるので、実装コードを手動で記述しなくても、簡単に取得できます。
ステップ⒈Apidogで先に保存したAPIかRequestを選択して、右側パネルで「コード生成」にガーソルを置き、「クライアントコードを生成」を選択します。
ステップ⒉コード生成ウィンドウで、「Python」を選択し、「Requests」を選択すると、Requestsモジュールの実装コードを生成することができます。
まとめ
PythonにはAPIアクセスのための標準ライブラリやサードパーティ製のライブラリがありますが、これらを使うにはある程度のコーディング能力が必要です。一方でノーコードのAPIテストツールApidogを利用することで、はるかに手軽にAPIの検証とドキュメント作成ができます。
Apidogはインターフェースがシンプルで、直感的な操作でAPIをテスト可能です。さらに重要なのが、リクエストの情報を保存する機能です。これにより手動でAPIドキュメントを作成する必要がなくなり、開発効率の大幅な向上が見込めます。加えてApidogには、保存したリクエスト情報からPythonのリクエストコードを自動生成する機能もあります。requestsモジュールを使用したコード例が出力されるため、それを利用すればアプリケーションにすぐに実装できるのです。コード自動生成とドキュメント作成を併用することで、PythonでのAPI活用がよりスムーズになることでしょう。