Python에서 토큰으로 API 호출하기
Python에서 API를 호출하는 방법에 대한 질문을 처음 접했을 때 가장 먼저 생각한 것은 “API란 무엇인가?“였습니다.
API는 Application Programming Interface의 약어입니다. 이를 통해 반드시 소프트웨어에 액세스하지 않고도 소프트웨어 데이터에 액세스할 수 있습니다. 예를 들어 암호화폐 API가 호출되면 암호화 웹사이트나 앱을 방문하지 않고도 암호화폐 가격에 직접 액세스할 수 있습니다.
파이썬에서 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