728x90
API를 사실 다른 분이 만드는 것만 계속 바라봤는데,
이번에 코드 공부를 좀 해보았다.
import hmac
import hashlib
import requests
import json
from time import gmtime, strftime
REQUEST_METHOD = "POST" # 요청 방식 설정
DOMAIN = "https://api-gateway.coupang.com" # API 도메인
URL = "/v2/providers/affiliate_open_api/apis/openapi/v1/deeplink" # 요청을 보낼 엔드포인트의 경로
# Replace with your own ACCESS_KEY and SECRET_KEY
ACCESS_KEY = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" # 발급받은 API KEY값 입력
SECRET_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" # 발급받은 API KEY값 입력
REQUEST = { "coupangUrls": [
"https://www.coupang.com/np/search?component=&q=good&channel=user",
"https://www.coupang.com/np/coupangglobal"
]}
def generateHmac(method, url, secretKey, accessKey): # 요청 메서드, URL, 비밀 키, 액세스 키를 매개변수로
path, *query = url.split("?")
datetimeGMT = strftime('%y%m%d', gmtime()) + 'T' + strftime('%H%M%S', gmtime()) + 'Z'
message = datetimeGMT + method + path + (query[0] if query else "") # 메서드와 URL을 기반으로 서명 메시지를 생성
# 비밀 키를 사용하여 HMAC SHA256 서명을 생성
signature = hmac.new(bytes(secretKey, "utf-8"),
message.encode("utf-8"),
hashlib.sha256).hexdigest()
return "CEA algorithm=HmacSHA256, access-key={}, signed-date={}, signature={}".format(accessKey, datetimeGMT, signature)
# 생성된 서명을 포함한 Authorization 헤더 문자열을 반환
authorization = generateHmac(REQUEST_METHOD, URL, SECRET_KEY, ACCESS_KEY)
# 요청 보낼 url 생성
url = "{}{}".format(DOMAIN, URL)
# API 요청 방식 >> JSON 형태
response = requests.request(method=REQUEST_METHOD, url=url,
headers={
"Authorization": authorization,
"Content-Type": "application/json"
},
data=json.dumps(REQUEST)
)
# 응답 출력 실험
print(response.json())
백엔드 서버에서도 JSON으로 보낼 수 있나?라는 막연한 생각을 했지만,
결국 서버에서도 쿠팡 API로 '요청'을 보내는 것이기 때문에
계속해서 JSON 형태를 유지해야 쿠팡 서버 API에서 요청을 인지할 수 있는 것을 상기했다.
'Framework > Django' 카테고리의 다른 글
FBV 와 CBV 차이점 (0) | 2023.06.16 |
---|---|
DRF Docs 입문 (0) | 2023.06.15 |
[트러블 슈팅] 인코딩 에러 (0) | 2023.06.11 |
[트러블 슈팅] 환경설정.. (0) | 2023.06.09 |
poetry 기본 명령어 모음 (0) | 2023.06.07 |