Как в FastAPI обрабатывать междоменные запросы (CORS)?
Вопрос проверяет знание обработки междоменных запросов с использованием CORS в FastAPI.
Короткий ответ
Для обработки междоменных запросов FastAPI предоставляет встроенное средство CORSMiddleware. Оно позволяет настроить правила, определяющие, какие домены могут отправлять запросы к вашему API.
Длинный ответ
CORS (Cross-Origin Resource Sharing) — это механизм, позволяющий серверу указывать, какие домены могут взаимодействовать с его API. Это особенно важно для защиты от несанкционированного доступа.
В FastAPI настройка CORS выполняется через встроенное промежуточное ПО CORSMiddleware. Вы можете указать список разрешенных доменов, методы HTTP и заголовки, которые сервер принимает.
Пример настройки CORS:
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
app = FastAPI()
origins = ["http://localhost", "http://localhost:3000"]
app.add_middleware(
CORSMiddleware,
allow_origins=origins, # Список разрешенных доменов
allow_credentials=True,
allow_methods=["*"], # Разрешенные методы (GET, POST и т.д.)
allow_headers=["*"], # Разрешенные заголовки
)
@app.get("/")
def read_root():
return {"message": "CORS configured"}
Когда использовать:
- Настройка CORS необходима, если ваше API используется с веб-клиентами, размещенными на другом домене. Это особенно важно для SPA-приложений и клиент-серверных архитектур.