반응형
Cookie 파라미터
Query 클래스와 Path 클래스와 동일한 사용버븡로 Cookie 클래스를 이용하여 Cookie를 다룰 수 있다
from typing import Optional
from fastapi import Cookie, FastAPI
app = FastAPI()
@app.get("/items/")
async def read_items(ads_id: Optional[str] = Cookie(None)):
return {"ads_id": ads_id}
Headerr 파라미터
마찬가지로 Header 클래스를 이용해 Header를 다룰 수 있다
from typing import Optional
from fastapi import FastAPI, Header
app = FastAPI()
@app.get("/items/")
async def read_items(user_agent: Optional[str] = Header(None)):
return {"User-Agent": user_agent}
반응형
Automatic Conversion
대부분의 헤더들은 하이픈 문자 ( - )로 분리됩니다. 그러나 user-agent 같은 문자는 파이썬에서 유효하지 않습니다. 파이썬은 하이픈 문자로 변수선언이 안되기 때문이죠.
그래서 Header 클래서는 undersocre( _ )를 하이픈( - )으로 바꿔주고 헤더를 만듭니다.
고로 코드를 작성할 때 user_agent로 사용하면 문제가 없지요.
만약 어떠한 이유로 이런 auto conversion을 diable 하고 싶을 경우 convert_underscorres를 false로 지정해주면 됩니다.
from typing import Optional
from fastapi import FastAPI, Header
app = FastAPI()
@app.get("/items/")
async def read_items(
strange_header: Optional[str] = Header(None, convert_underscores=False)
):
return {"strange_header": strange_header}
Duplicate Headers
중복된 헤더들을 받을 수 있습니다. 즉 같은 헤더에 multiple values를 의미합니다.
이러한경우 list를 이용하여 처리할 수 있습니다.
아래의 예제는 여러번 올 수 있는 X-Token을 리스트로 처리하는 예제입니다.
from typing import List, Optional
from fastapi import FastAPI, Header
app = FastAPI()
@app.get("/items/")
async def read_items(x_token: Optional[List[str]] = Header(None)):
return {"X-Token values": x_token}
만약 아래와 같은 HTTP 헤더를 보냈다면
X-Token: foo
X-Token: bar
아래와 같은 response를 얻습니다.
{
"X-Token values": [
"bar",
"foo"
]
}
반응형
'Fast API > fastapi배우기' 카테고리의 다른 글
Fast API 배우기 12부 - Extra Model (1) | 2021.11.01 |
---|---|
Fast API 배우기 11부 - Response Model (0) | 2021.11.01 |
Fast API 배우기 9부 - Extra Data Types (0) | 2021.11.01 |
Fast API 배우기 8부 - Example Data 넣기 (0) | 2021.11.01 |
Fast API 배우기 7부 - Field 클래스 (5) | 2021.11.01 |
댓글