[FastAPI Docs] Header Parameters

JeongChaeJin·2022년 8월 30일
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}
  • Path, Query, Cookie와 동일한 구조로 선언
  • 쿠키와 마찬가지로 Query 매개변수로 착각하지 않게 Header선언을 위해서는 임포트한 Header를 사용한다.
  • 대부분 표준 헤더는 - 기호로 구분된다. But Python에서는 허용되는 형태의 변수가 아니다.
    • 따라서 기본적으로 매개 변수 이름을 언더스코어(_)에서 하이픈(-)으로 변환해서 헤더를 추출하고 기록한다.
    • snake_case로 선언 가능, 대소 문자 구분 X
    • 언더스코어 비활성화하려면 convert_unerscores를 False로 설정 (어떤 HTTP Proxy 들은 언더스코어가 포함된 헤더 사용 허락하지 않으므로 주의)
      @app.get("/items/")
    async def read_items(
        strange_header: Union[str, None] = Header(default=None, convert_underscores=False)
    		):
      	return {"X-Token values": x_token}
profile
OnePunchLotto

0개의 댓글