Python でトークンを使用して API 呼び出しを行う

Oluwafisayo Oluwatayo 2023年6月21日
  1. Python でトークンなしで API 呼び出しを行う
  2. Python でトークンを使用して API 呼び出しを行う
  3. まとめ
Python でトークンを使用して API 呼び出しを行う

Python で API を呼び出す方法という問題に最初に遭遇したとき、最初に考えたのはAPI とは何か?ということでした。

API は、Application Programming Interface の頭字語です。 必ずしもアクセスしなくても、ソフトウェアのデータにアクセスできます。 たとえば、暗号通貨 API が呼び出された場合、暗号の Web サイトやアプリにアクセスしなくても、暗号価格に直接アプリからアクセスできます。

Python で API を呼び出す場合、トークンを使用して呼び出すことができます。トークンを使用しない場合、API は安全ではありませんが、トークンを使用する場合はパスワードとして機能し、 トークンにアクセスするためのユーザー名。

両方のケースの例を見ていきます。

Python でトークンなしで API 呼び出しを行う

まず、このリクエストを処理する Python ライブラリをインストールする必要があります。 ターミナル内でpip install requestsと入力し、新しいファイルを作成してnew.pyという名前を付けます。 次に、これらのコードを入力します。

new.py:

import requests
import json


class MakeApiCall:
    def get_data(self, api):
        response = requests.get(f"{api}")
        if response.status_code == 200:
            print("call successful")
            self.formatted_print(response.json())
        else:
            print(f"error {response.status_code} in fetching request")

    def get_user_data(self, api, parameters):
        response = requests.get(f"{api}", params=parameters)
        if response.status_code == 200:
            print("data fetch success")
            self.formatted_print(response.json())
        else:
            print(f"error {response.status_code} in fetching request")

    def formatted_print(self, obj):
        text = json.dumps(obj, sort_keys=True, indent=4)
        print(text)

    def __init__(self, api):
        parameters = {"site": "stackoverflow"}
        self.get_user_data(api, parameters)


if __name__ == "__main__":
    api_call = MakeApiCall("https://api.stackexchange.com/2.2/info")

最初のスニペットは呼び出しを処理します。 呼び出しが成功すると結果が出力され、データが正常に取得された後に結果が出力されます。 それ以外の場合は、エラーを出力してから、API から取得したデータを出力する必要があります。

最後の行は、データをフェッチする API リンクです。 [実行] をクリックしたら、しばらく待つと、ターミナル内でデータがフェッチされていることがわかります。

Python でトークンなしで API 呼び出しを行う

Python でトークンを使用して API 呼び出しを行う

前述したように、トークンを使用して API を作成するということは、アクセスしようとしている API への安全な接続を確立することを意味します。 pip からいくつかの依存関係をインストールする必要があります。

最初にトークンを生成し、そのために jwt をデプロイする必要があります。 ターミナル内でpip install jwtと入力します。

新しいファイルを開き、jwt.py という名前を付け、以下のコードを入力してトークンを生成します。

jwt.py:

import jwt

encoded_jwt = jwt.encode({"some": "payload"}, "secret", algorithm="HS256")
print(encoded_jwt)

次に、API 呼び出しリクエストを処理する requests をインストールします。 ターミナル内に pip install requests と入力します。

次に、ファイルを作成し、new.py という名前を付けて、次のコードを入力します。

new.py:

import requests

BASE_URL = "https://www.boredapi.com/api/activity"
token = "your jwt token"

headers = {"Authorization": "Bearer {}".format(token)}
auth_response = requests.get(BASE_URL, headers=headers)

print(auth_response.json())

[実行] をクリックすると、API からフェッチされたデータがターミナル内に表示されます。

Python でトークンを使用して API 呼び出しを行う

まとめ

理想的には、より深刻なプロジェクトを実行したい場合は、保護を強化するためにトークンを使用して API を呼び出す必要があります。 jwt はトークンを生成する簡単な方法を提供しますが、トークンを生成する方法は他にもあります。

Oluwafisayo Oluwatayo avatar Oluwafisayo Oluwatayo avatar

Fisayo is a tech expert and enthusiast who loves to solve problems, seek new challenges and aim to spread the knowledge of what she has learned across the globe.

LinkedIn

関連記事 - Python Requests