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 呼び出しを行う
前述したように、トークンを使用して 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 からフェッチされたデータがターミナル内に表示されます。
まとめ
理想的には、より深刻なプロジェクトを実行したい場合は、保護を強化するためにトークンを使用して API を呼び出す必要があります。 jwt
はトークンを生成する簡単な方法を提供しますが、トークンを生成する方法は他にもあります。
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