Встречается на собеседованиях • сегодня

Как бы ты спроектировал API с использованием FastAPI

FastAPI отлично подходит для создания современных API благодаря асинхронности, автоматической документации и валидации данных. Вот ключевые моменты:

  1. Структура проекта:
python
app/
├── main.py          # Точка входа
├── api/             # Роутеры
│   ├── v1/          # Версия API
│   │   ├── items.py
│   │   └── users.py
├── models/          # Pydantic модели
├── database/        # Работа с БД
└── config.py        # Настройки
  1. Пример роутера:
python
# api/v1/items.py
from fastapi import APIRouter, HTTPException

router = APIRouter(prefix="/items")

@router.get("/{item_id}")
async def read_item(item_id: int):
    return {"item_id": item_id}
  1. Основные практики:
  • Используйте Pydantic для валидации входных/выходных данных
  • Добавляйте версионирование API (v1, v2)
  • Реализуйте JWT-аутентификацию через OAuth2PasswordBearer
  • Добавляйте лимиты запросов (rate limiting)
  • Используйте dependency injection для повторяющейся логики
  • Настройте CORS для фронтенда
  • Добавьте логирование и обработку ошибок
  1. Главный файл:
python
# main.py
from fastapi import FastAPI
from api.v1 import items, users

app = FastAPI()
app.include_router(items.router)
app.include_router(users.router)

Такой подход обеспечит масштабируемость, читаемость кода и удобство поддержки API.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы