본문 바로가기
Programming/python

[Python] Requests로 curl 명령어 API 호출하기

by didi0di 2024. 11. 5.
728x90



API를 호출할 때 curl 명령어가 많이 사용되지만, Python 스크립트 안에서 API를 호출해야 할 때는 requests 라이브러리를 사용하면 코드의 가독성과 재사용성이 훨씬 높아집니다. 오늘은 curl 명령어를 Python requests로 바꾸는 방법에 대해 알아보겠습니다.

 

 1. curl  명령어의 기본 구조


curl은 데이터를 전송하고 수신하기 위한 강력한 명령줄 도구로, API 호출에서 자주 사용됩니다.

POST 요청을 보내기 위한 일반적인 curl 명령어는 다음과 같습니다:

curl -X POST "https://api.example.com/data" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -d '{"name": "John", "age": 30}'



이 명령어는 JSON 데이터를 포함한 POST 요청을 보내며, 인증 토큰과 같은 추가 헤더도 포함합니다.


구성 요소 설명

  • -X POST : HTTP 메서드로 POST를 사용합니다.
  • -H : 요청 헤더를 설정합니다.
  • -d : 전송할 데이터를 JSON 형식으로 설정합니다.

 

2.  requests 라이브러리로 변환하기

 


이제 위 curl 명령어를 Python의 requests 라이브러리를 사용한 코드로 바꿔보겠습니다.

requests는 Python에서 HTTP 요청을 간편하게 보낼 수 있는 라이브러리로, 설치가 되어 있지 않다면 다음과 같이 설치할 수 있습니다:

pip install requests

 

변환된 Python 코드

 


다음은 curl 명령어를 requests 라이브러리로 변환한 예제 코드입니다:

import requests
import json

url = "https://api.example.com/data"
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer YOUR_API_KEY"
}
data = {
    "name": "John",
    "age": 30
}

response = requests.post(url, headers=headers, data=json.dumps(data))

# 응답 상태 코드와 데이터 확인
if response.status_code == 200:
    print("성공:", response.json())
else:
    print("실패:", response.status_code, response.text)


코드 설명


- URL: curl 명령어의 URL을 url 변수에 저장합니다.
- headers: 요청 헤더를 딕셔너리로 작성합니다.
- data: 전송할 JSON 데이터를 딕셔너리로 구성합니다. json.dumps() 를 사용하여 JSON 형식으로 변환하여 data 매개변수에 전달합니다.
- response 처리: 요청의 응답 상태 코드와 결과를 확인하여 성공 여부를 판단할 수 있습니다.

 


 3. 참고 사항


- data=json.dumps(data) 를 사용하면 JSON 데이터를 POST 요청 본문으로 전달할 수 있습니다.
- JSON 응답을 받았을 때는 response.json() 메서드를 사용해 바로 파싱할 수 있습니다.

 


마치며


이제 curl 명령어를 requests 라이브러리로 손쉽게 변환할 수 있습니다.

Python 코드로 변환하면 더 복잡한 로직을 쉽게 추가할 수 있어, API 호출을 자동화하거나 데이터 분석에 활용하기 훨씬 유리합니다. 

블로그 포스팅이 도움이 되셨기를 바라며, requests 라이브러리와 함께 효율적인 API 호출을 시작해 보세요!

728x90

댓글