Cookie
from fastapi import Cookie, FastAPI
app = FastAPI()
@app.get("/items/")
async def read_items(ads_id: Optional[str] = Cookie(None)):
- 위와 같이 header의 cookie정보를 Cookie parameter로 받을 수 있다.
- 하지만 path parameter를 Cookie로 지정하면 Cookie로 인식하지 않고 path parameter로 인식한다.
Header
from fastapi import FastAPI, Header
app = FastAPI()
@app.get("/items/")
async def read_items(user_agent: Optional[str] = Header(None)):
- 대부분의 표준 헤더는 "마이너스 기호" (-)라고도 하는 "하이픈" 문자로 구분된다.
- 그러나 파이썬에서 user-agent와 같은 형태의 변수는 유효하지 않기때문에, Header는 기본적으로 매개변수 이름을 언더스코어(_)에서 하이픈(-)으로 변환하여 헤더를 추출하고 기록한다. 따라서 user_agent로 사용가능.
- 또한 HTTP 헤더는 대소문자를 구분하지 않으므로 "snake_case"로 알려진 표준 파이썬 스타일로 선언할 수 있다.
- 만약 언더스코어를 하이픈으로 자동 변환을 비활성화해야 할 어떤 이유가 있다면, Header의 convert_underscores 매개변수를 False로 바꿔주면 된다.
async def read_items(
strange_header: Optional[str] = Header(None, convert_underscores=False)
):
- 하지만 몇몇의 http proxy나 server는 underscores를 허용하지 않는 경우가 있으니 유의해서 써야한다.
@app.get("/items/")
async def read_items(x_token: Union[List[str], None] = Header(default=None)):
return {"X-Token values": x_token}
- 헤더를 다음과 같이 여러개 쓸 수 있는데, 위와 같이 list로 정의해줄 경우 여러개 보낼 수 있다.
curl -X 'GET' 'http://gpu1.neuralworks.io:8000/files/aa/cookie-header'
-H 'accept: application/json'
-H 'header-hypen: string'
-H 'header-hypen: bb'
-H 'Cookie: cookie=dd'
'Fastapi' 카테고리의 다른 글
내맘대로 Fastapi docs 정리(Pydantic data types, Pydantic Nested Models) (0) | 2022.06.28 |
---|---|
내맘대로 Fastapi Docs 정리(Query, Path, Body parameters) (0) | 2022.06.28 |
fastapi background task in startup (0) | 2021.12.20 |
내맘대로 Fastapi Document summary[9] (0) | 2021.11.25 |
내맘대로 Fastapi Document summary[8] (0) | 2021.11.24 |