Python에서 토큰으로 API 호출하기

Oluwafisayo Oluwatayo 2024년2월15일
  1. Python에서 토큰 없이 API 호출하기
  2. Python에서 토큰으로 API 호출하기
  3. 결론
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 호출하기

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