Sobes.tech
Back to questions
Junior — Middle
62

Какие разновидности ответов могут быть возвращены из API, реализированного с помощью FastAPI?

Companies where asked
РЕСО-Лизинг

Answer from AI

sobes.tech AI

FastAPI позволяет возвращать из API различные виды ответов:

  • Стандартные объекты Python — словари, списки, модели Pydantic. FastAPI автоматически сериализует их в JSON.

  • Объекты Response — например, JSONResponse, HTMLResponse, PlainTextResponse для явного указания типа и содержимого ответа.

  • Статусы HTTP — можно возвращать кортежи вида (данные, статус_код), например (data, 201).

  • Модели Pydantic — для валидации и сериализации данных.

  • Файлы — с помощью FileResponse можно возвращать файлы.

  • Исключения HTTPException — для возврата ошибок с кодом и сообщением.

Пример:

from fastapi import FastAPI, HTTPException
from fastapi.responses import JSONResponse

app = FastAPI()

@app.get("/items/{item_id}")
async def read_item(item_id: int):
    if item_id == 0:
        raise HTTPException(status_code=404, detail="Item not found")
    return JSONResponse(content={"item_id": item_id, "name": "Item Name"}, status_code=200)

Таким образом, FastAPI гибко обрабатывает различные типы ответов, упрощая разработку API.