Metadata-Version: 2.4
Name: fastapi-swagger-customizer
Version: 0.1.2
Summary: One-command custom Swagger UI for FastAPI
Author-email: MRPlover <plovermr@gmail.com>
License: MIT
Project-URL: Homepage, https://github.com/MRPlover/fastapi-swagger-customizer
Project-URL: Repository, https://github.com/MRPlover/fastapi-swagger-customizer
Project-URL: Documentation, https://github.com/MRPlover/fastapi-swagger-customizer#readme
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Framework :: FastAPI
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: fastapi>=0.100.0
Requires-Dist: jinja2>=3.0.0
Provides-Extra: dev
Requires-Dist: pytest>=7.0.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
Requires-Dist: black>=23.0.0; extra == "dev"
Requires-Dist: ruff>=0.0.270; extra == "dev"
Requires-Dist: mypy>=1.0.0; extra == "dev"
Provides-Extra: docs
Requires-Dist: mkdocs>=1.4.0; extra == "docs"
Requires-Dist: mkdocs-material>=9.0.0; extra == "docs"
Dynamic: license-file

### FastAPI Swagger Customizer 🎨

[![PyPI version](https://img.shields.io/pypi/v/fastapi-swagger-customizer.svg)](https://pypi.org/project/fastapi-swagger-customizer/)[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

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

### ✨ Особенности

* 🚀 **Подключение в одну команду** — заменяет стандартный /docs на ваш кастомный интерфейс.
* 📦 **Всё включено** — CSS, JS и плагины (цвета, группировка) поставляются прямо внутри пакета.
* 🧩 **Умное монтирование** — библиотека автоматически подстраивается под пути, указанные в вашем HTML.
* 🛠️ **Полная совместимость** — не ломает стандартную генерацию openapi.json.

### 📦 Установка

Установите пакет с помощью pip: 

```bash
pip install fastapi-swagger-customizer
```

### 🚀 Быстрый старт

Просто импортируйте функцию setup_custom_swagger и передайте в неё ваше FastAPI приложение. 

```python
from fastapi import FastAPI
from fastapi_swagger_customizer import setup_custom_swagger

app = FastAPI(
    title="My Awesome API",
    version="1.0.0",
    docs_url=None
)

# Подключаем кастомный Swagger UI одной командой!
setup_custom_swagger(app)

@app.get("/items")
def read_items():
    return {"message": "Hello World"}
```


Теперь запустите ваше приложение и перейдите по адресу localhost/docs. Вы увидите обновленный Swagger со стилями и плагинами! 

### ⚙️ Расширенная настройка (Параметры kwargs)

Вы можете гибко управлять элементами интерфейса, передавая дополнительные параметры в setup_custom_swagger: 

```python
setup_custom_swagger(
    app,
    static_url="/swagger/static",  # Кастомный путь для статических файлов
    include_groups=False,          # Отключить плагин группировки эндпоинтов
    include_colors=True,           # Оставить кастомную палитру цветов
)
```

### 🛠️ Что внутри и как настроить?

Библиотека заменяет стандартный шаблон Swagger на кастомный index.html, в который встроены следующие компоненты. Вы можете отключать их или переопределять через параметры: 

* **Индивидуальная тема оформления** (swagger-ui.css + add.css) 

* **Плагин группировки роутов** (swagger-group.js) 
  * *Описание:* Позволяет группировать теги и выводить их древовидной структурой  
  Строго такой шаблон: tags = ["tag1.tag2"]  
  Тут tag1 вложен в tag2 и все с таким префиксом.  
  * *Параметр для настройки:* include_groups=False 
* **Управление цветовой палитрой** (swagger-color.js и swagger-colors-config.js)   
  * *Описание:* Добавляет возможность редактирования базовых цветов Swagger.  
  Справа сверху имеется иконка палитры, которая открывает конфигурацию цветов.  
  Хранятся цвета в localstorage.  
  * *Параметр для настройки:* include_colors=False (опишите конфигурацию цветов здесь)

### 🤝 Ссылки и разработка

* **Исходный код:** [GitHub Repository](https://github.com/MRPlover/fastapi-swagger-customizer)
* **Сообщить об ошибке:** [GitHub Issues](https://github.com/MRPlover/fastapi-swagger-customizer/issues)

### 📄 Лицензия

Проект распространяется под лицензией [MIT](LICENSE).
