Ответ
Swagger UI можно гибко настраивать в Python-фреймворках с помощью специализированных библиотек. Наиболее популярные решения — flasgger для Flask и drf-yasg / drf-spectacular для Django REST Framework.
Они позволяют изменять как метаданные API, так и внешний вид самой документации.
Основные возможности кастомизации:
- Метаданные: Заголовок (
title), версия (version), описание (description). - URL: Изменение пути к документации (например, с
/docsна/api/docs). - Авторизация: Добавление кнопок и схем авторизации (ApiKey, Bearer JWT).
- Внешний вид: Подключение кастомных CSS для изменения цветовой схемы и логотипа.
Пример для Flask с flasgger:
from flask import Flask
from flasgger import Swagger
app = Flask(__name__)
# Конфигурация для кастомизации Swagger
swagger_config = {
"headers": [],
"specs": [
{
"endpoint": 'apispec_1',
"route": '/apispec_1.json',
}
],
"static_url_path": "/flasgger_static",
"swagger_ui": True,
"specs_route": "/apidocs/", # Кастомный URL
"title": "My Custom API", # Кастомный заголовок
"version": "2.0.0",
"description": "Это описание моего кастомного API"
}
swagger = Swagger(app, config=swagger_config)
@app.route('/')
def index():
"""Это главная страница.
---
responses:
200:
description: Успешный ответ
"""
return "Hello, World!"
if __name__ == '__main__':
app.run(debug=True)
После запуска документация будет доступна по адресу http://127.0.0.1:5000/apidocs/ с указанными заголовком и описанием.