Skip to content

Использование Swagger UI в FastAPI для документации и тестирования API**

FastAPI — это современный, быстрый (высокопроизводительный) веб-фреймворк для создания API на Python, основанный на стандартных аннотациях типов. Одной из ключевых особенностей FastAPI является автоматическая генерация интерактивной документации API с использованием Swagger UI. В этой статье мы рассмотрим, как работает Swagger UI в FastAPI, как его настроить и как использовать для тестирования вашего API.

Что такое Swagger UI?

Swagger UI — это инструмент, который позволяет визуализировать и взаимодействовать с API прямо в браузере. Он автоматически генерирует интерактивную документацию на основе OpenAPI-спецификации, которая создается FastAPI. С помощью Swagger UI вы можете:

  • Просматривать доступные эндпоинты.
  • Видеть описание каждого эндпоинта, параметры запроса и ответа.
  • Отправлять тестовые запросы и получать ответы в реальном времени.

Как FastAPI интегрирует Swagger UI?

FastAPI автоматически генерирует OpenAPI-спецификацию для вашего API на основе аннотаций типов и Pydantic-моделей. Эта спецификация используется для отображения документации в Swagger UI. По умолчанию Swagger UI доступен по адресу /docs вашего API.

Пример использования Swagger UI в FastAPI

Рассмотрим простой пример API, созданного с помощью FastAPI, и посмотрим, как Swagger UI помогает в его документировании и тестировании.

python
from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class Item(BaseModel):
    name: str
    description: str | None = None
    price: float
    tax: float | None = None

@app.post("/items/")
def create_item(item: Item):
    return item

@app.get("/items/{item_id}")
def read_item(item_id: int, q: str | None = None):
    return {"item_id": item_id, "q": q}

Шаги для запуска и использования Swagger UI

  1. Установите FastAPI и Uvicorn (ASGI-сервер для запуска FastAPI):

    bash
    pip install fastapi uvicorn
  2. Запустите приложение:

    bash
    uvicorn main:app --reload

    Здесь main — это имя файла (без .py), а app — экземпляр FastAPI.

  3. Перейдите к Swagger UI:

    Откройте браузер и перейдите по адресу http://127.0.0.1:8000/docs. Вы увидите интерактивную документацию Swagger UI.

    Swagger UI

  4. Используйте Swagger UI для тестирования API:

    • В разделе POST /items/ вы можете отправить JSON-запрос с данными для создания нового элемента.
    • В разделе GET /items/{item_id} вы можете указать item_id и опциональный параметр q, чтобы получить данные.

Преимущества использования Swagger UI в FastAPI

  1. Автоматическая документация: FastAPI автоматически генерирует документацию на основе вашего кода, что экономит время и уменьшает вероятность ошибок.
  2. Интерактивность: Вы можете тестировать API прямо в браузере, не используя дополнительные инструменты, такие как Postman или curl.
  3. Поддержка OpenAPI: Swagger UI поддерживает OpenAPI-спецификацию, что делает документацию совместимой с другими инструментами.
  4. Легкость настройки: Вам не нужно писать дополнительный код для настройки Swagger UI — всё работает "из коробки".

Дополнительные возможности

FastAPI также предоставляет альтернативную документацию через ReDoc, доступную по адресу /redoc. ReDoc предлагает более минималистичный интерфейс для просмотра документации.

Заключение

Swagger UI — это мощный инструмент, который делает разработку и тестирование API в FastAPI более удобным и эффективным. Благодаря автоматической генерации документации и интерактивному интерфейсу, вы можете сосредоточиться на написании кода, не беспокоясь о ручном создании документации. FastAPI и Swagger UI вместе создают идеальную экосистему для разработки современных веб-API.

Если вы еще не пробовали FastAPI, обязательно попробуйте — вы оцените его простоту, скорость и мощь!

Contacts: teffal@mail.ru