헤더/쿠키 매개변수는 앞서 배운 매개변수들과는 다른 점이 있습니다. 이 매개변수를 다루기 위해서는 반드시 Header, Cookie 클래스를 사용해야합니다.
머전 쿠키를 테스트 해보겠습니다.
쿠키 가져오기 위한 코드를 다음과 같이 작성해주세요 !!
import uvicorn
from fastapi import FastAPI, Cookie
app = FastAPI()
@app.get("/cookie")
def get_cookies(ga: str = Cookie(None)):
return {"ga": ga}
if __name__ == "__main__":
uvicorn.run("main:app", reload = True)
쿠키는 사이트에 정보를 수집하기 위해서 많이 사용하는 프로그램들입니다.
위의 코드에서 ga는 구글 애널리틱스가 굽는 쿠키 이름입니다.
HTTPie를 사용해서 다음과 같이 요청을 보낼 수 있습니다.
$ http :8000/cookie Cookie:ga=GA12.3.4
HTTPie에서 쿠키는 Cookie:<key>=<value>;<key>=<value>와 같이 작성합니다. ;은 구분자입니다.
다음에 알아볼 것은 Header입니다.
HTTP 헤더는 종료도 많고 컴스텀 헤더들도 정말 많이 사용합니다.
다음 코드는 헤더의 예시 코드입니다.
import uvicorn
from fastapi import FastAPI, Header
app = FastAPI()
@app.get("/header")
def get_headers(x_token: str = Header(None, title="토큰")):
return {"X-Token": x_token}
if __name__ == "__main__":
uvicorn.run("main:app", reload = True)
헤더에서 X-접두어는 사용자 정의의 헤더라는 것을 의미합니다. 이렇게 사용하는 이유는 표준 헤더와 구분을 짓기 위해서 사용한다고 헙니다. X-접두어는 관례적으로 많이 사용한다고 하니 기억해두어야 한다고 합니다.
하지만 python에서는 "-"을 변수명으로 사용하지 못하기 때문에 "_" 언더스코어를 대신 사용을 합니다.
다음과 같이 HTTPie의 요청을 주어서 응답을 확인 할 수 있습니다.
$ http :8000/header X-Token:some.secret.token
Header는 다른 클래스와 다르게 convert_underscores 옵션을 갖는데 False를 줄 경우 하이픈을 언더스코어로 변환하지 않습니다. X-token이 아니라 X_Token이라는 헤더를 위해 존재하는 옵션입니다. 하지만 애초에 언더스코어를 사용하는 건 관례를 벗어나므로 웬만해서는 하지 않아야 합니다.
'FastAPI' 카테고리의 다른 글
RDB 연동 - 2 (0) | 2024.01.30 |
---|---|
RDB 연동 - 1 (0) | 2024.01.29 |
FastAPI 데이터 검증 (1) | 2024.01.25 |
응답모델 - 2 (0) | 2024.01.21 |
응답모델 - 1 (0) | 2024.01.20 |