FastAPI — это современная, быстрая (высокопроизводительная) веб-платформа для создания API с помощью Python. Одним из распространенных требований при работе с API является возможность передавать заголовки в HTTP-запросах. В этой статье мы рассмотрим различные методы передачи заголовков в FastAPI, а также примеры кода.
Метод 1: прямое использование заголовков запроса
Самый простой способ передать заголовки в FastAPI — получить к ним доступ непосредственно из объекта запроса. Вот пример:
from fastapi import FastAPI, Header
app = FastAPI()
@app.get("/items/")
async def get_items(user_agent: str = Header(None)):
return {"User-Agent": user_agent}
В приведенном выше коде мы определяем маршрут /items/
, который ожидает заголовок User-Agent
. Декоратор параметра Header
позволяет нам получить доступ к значению заголовка.
Метод 2: использование внедрения зависимостей
FastAPI поддерживает внедрение зависимостей, что позволяет нам объявлять зависимости, которые можно внедрить в функции маршрута. Мы можем использовать эту функцию для передачи заголовков. Вот пример:
from fastapi import FastAPI, Depends, Header
app = FastAPI()
async def get_user_agent(user_agent: str = Header(None)):
return user_agent
@app.get("/items/")
async def get_items(user_agent: str = Depends(get_user_agent)):
return {"User-Agent": user_agent}
В приведенном выше коде мы определяем функцию зависимости get_user_agent
, которая получает значение заголовка User-Agent
. Затем мы можем использовать декоратор параметра Depends
, чтобы внедрить это значение в нашу функцию маршрута.
Метод 3: использование пользовательских моделей заголовков
FastAPI позволяет нам определять собственные модели для представления заголовков. Этот подход обеспечивает лучшую проверку и проверку типов. Вот пример:
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class UserAgent(BaseModel):
user_agent: str
@app.get("/items/")
async def get_items(user_agent: UserAgent):
return {"User-Agent": user_agent.user_agent}
В приведенном выше коде мы определяем модель UserAgent
с помощью Pydantic, которая представляет заголовок User-Agent
. FastAPI автоматически преобразует значение заголовка в определенный тип модели.
В этой статье мы рассмотрели несколько методов передачи заголовков в FastAPI. Мы рассмотрели прямой доступ к заголовкам, использование внедрения зависимостей и определение пользовательских моделей заголовков. В зависимости от вашего конкретного случая использования вы можете выбрать метод, который лучше всего соответствует вашим потребностям. Гибкость и простота использования FastAPI делают его мощной платформой для создания надежных API.
Не забывайте всегда проверять и очищать значения заголовков, чтобы обеспечить безопасность и целостность вашего API.
Реализуя эти методы передачи заголовков в FastAPI, вы можете улучшить функциональность своего API и обеспечить удобство работы для своих пользователей.