Функция Header
Функция Header применяется внутри функции-обработчика
и сообщает FastAPI, что соответствующий параметр нужно
взять из заголовков HTTP-запроса. Первым параметром
передаётся значение по умолчанию, а через именованные
аргументы задаются дополнительные настройки: alias,
title, description, convert_underscores
и другие. По умолчанию FastAPI преобразует имя параметра
из snake_case в kebab-case.
Синтаксис
Header(default, *, alias=None, convert_underscores=True, title=None, description=None)
Пример
Давайте примем заголовок user-agent в обработчике:
from fastapi import FastAPI, Header
app = FastAPI()
@app.get('/')
def index(user_agent: str = Header()):
return {'user_agent': user_agent}
Результат выполнения кода:
{"user_agent": "abcde"}
Пример
Давайте зададим значение по умолчанию для заголовка:
from fastapi import FastAPI, Header
app = FastAPI()
@app.get('/')
def index(x_token: str = Header('hello')):
return {'x_token': x_token}
Если клиент не передал заголовок x-token,
обработчик вернёт значение по умолчанию:
{"x_token": "hello"}
Пример
Давайте переопределим имя заголовка через аргумент alias:
from fastapi import FastAPI, Header
app = FastAPI()
@app.get('/')
def index(token: str = Header(alias='x-token')):
return {'token': token}
Результат выполнения кода:
{"token": "abcde"}
Пример
Давайте отключим автоматическое преобразование подчёркиваний
через convert_underscores:
from fastapi import FastAPI, Header
app = FastAPI()
@app.get('/')
def index(x_token: str = Header(convert_underscores=False)):
return {'x_token': x_token}
Теперь FastAPI ожидает заголовок x_token,
а не x-token. Результат выполнения кода:
{"x_token": "abcde"}