FastAPI - 07 (헤더(Header) 매개변수)
출처: https://fastapi.tiangolo.com/tutorial/header-params/
아래의 내용은 공식 사이트의 내용을 제 경험과 생각을 추가하여 다시 정리한 것 입니다.
헤더 매개변수(Header Parameters)
헤더 매개변수를 사용하여 헤더의 값을 가져올 수 있습니다.
from typing import Union
from fastapi import FastAPI, Header # Header import
app = FastAPI()
@app.get("/items/")
# Header를 사용하여 user_agent의 메타데이터를 지정
async def read_items(user_agent: Union[str, None] = Header(default=None)):
return {"User-Agent": user_agent}
http://localhost:8000/items/
위의 url로 접속 하면 아래와 같이 헤더의 정보를 가져옵니다.
{
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}
중복 헤더
헤더 매개변수를 사용하여 중복 헤더의 값을 가져올 수 있습니다.
아래는 X-Token
의 중복된 헤더의 값을 가져오는 예시 입니다.
from typing import List, Union
from fastapi import FastAPI, Header
app = FastAPI()
@app.get("/items/")
# 중복된 헤더 값을 가져오기 위해 List[str]로 지정
async def read_items(x_token: Union[List[str], None] = Header(default=None)):
return {"X-Token values": x_token}
헤더(X-Token)의 값을 중복으로 요청 하기 위해 아래의 Python 코드를 사용합니다.
header_test.py
# 만얀 requests가 설치 되어 있지 않다면 아래의 명령어로 설치 합니다.(CMD 또는 shell )
# pip install requests
import requests
# 요청할 URL 설정
url = 'http://localhost:8500/items/'
# X-Token 값으로 foo, bar 2개를 설정
headers = {
'X-Token': 'foo, bar'
}
# GET 요청 보내기
response = requests.get(url, headers=headers)
# 응답 내용 출력
print(response.status_code)
print(response.text)
위와 같이 소스를 작성 하고 아래와 같이 실행합니다.
python header_test.py
# ubuntu
# python3 header_test.py
아래와 같은 결과가 나옵니다.
200
{"X-Token values":["foo, bar"]}
status_code가 200이므로 정상적으로 처리 되었고 X-Token values
의 값으로 foo, bar
가 나옵니다.
해시태그: #fastapi #uvicorn #fastapi Header parameters #fastapi Annotated
댓글남기기