헤더 매개변수를 Query, Path, Cookie 매개변수들과 같은 방식으로 정의 할 수 있다.
from typing import Union
from fastapi import FastAPI, Header
app = FastAPI()
@app.get("/items/")
async def read_items(user_agent: Union[str, None] = Header(default=None)):
return {"User-Agent": user_agent}
Header는 다른 Path, Query, Cookie가 제공하는 기능 외에 자동 변환이라는 것을 제공하고 있는데 헤더에 담긴 데이터 이름들은 모두 하이픈(-)으로 되어 있는데 파이썬은 유효하게 보지 않는다.
따라서 매개변수 이름을 _ 언더스코어를 이용하여 표기해놓는다면 자동으로 하이픈(-)으로 변환하여 헤더를 추출하고 기록한다.
예제)
from typing import Union
from fastapi import FastAPI, Header
app = FastAPI()
@app.get("/items/")
async def read_items(
strange_header: Union[str, None] = Header(default=None, convert_underscores=False)
):
return {"strange_header": strange_header}
여러 중복 헤더들이 수신 될 수도 있는데 이는 List을 이용하여 처리 할 수 있다.
from typing import List, Union
from fastapi import FastAPI, Header
app = FastAPI()
@app.get("/items/")
async def read_items(x_token: Union[List[str], None] = Header(default=None)):
return {"X-Token values": x_token}
'FrameWork > Fastapi' 카테고리의 다른 글
[Fastapi] 쿠키 매개변수 (0) | 2023.05.12 |
---|---|
[Fastapi] Body Fields을 통한 유효성 검증, 중첩 모델 (0) | 2023.05.12 |
[Fastapi] Body Multiple Parameters (0) | 2023.05.12 |
[Fastapi] 경로 매개 변수에서의 유효성 검증 (1) | 2023.05.12 |
[Fastapi] 유효성 검사, 필수 매개변수, 쿼리 매개변수 목록/다중 값 처리 (0) | 2023.05.12 |