Инструмент с открытым исходным кодом для создания адаптивного трёхпанельного сайта со справочной документацией API на основе спецификаций OpenAPI, Swagger, AsyncAPI или GraphQL.
axnsan12/drf-yasg
Создаёт спецификации Swagger/OpenAPI 2.0 и интерактивную документацию по API на Django REST Framework.
- Звёзды
- 3,547
- Форки
- 439
- Открытые issues
- 218
- Последний коммит
- 29 дней назад
Что это?
drf-yasg анализирует представления и сериализаторы Django REST Framework и формирует на их основе схему OpenAPI 2.0 (Swagger), поэтому документация API соответствует коду и не требует ручного обновления. Схему можно отдавать в формате JSON или YAML, а библиотека включает swagger-ui и ReDoc, чтобы просматривать сгенерированную документацию прямо в проекте.
Для настройки достаточно добавить приложение в INSTALLED_APPS и подключить представление схемы в urls.py. Поддерживаются вложенные сериализаторы, а на каждом этапе генерации спецификации доступны хуки для настройки. Кэширование встроено; кроме того, схему можно проверять с помощью swagger-spec-validator.
Проект поддерживает только OpenAPI 2.0. Для новых проектов, которым нужен OpenAPI 3.0, сопровождающие рекомендуют drf-spectacular; в README также отмечено, что поддержка версии 3.0 вряд ли появится в drf-yasg.
Ключевые возможности
- 01Генерирует спецификации Swagger/OpenAPI 2.0 на основе представлений и сериализаторов DRF, включая вложенные сериализаторы.
- 02Отдаёт спецификацию в формате JSON или YAML.
- 03Включает swagger-ui и ReDoc для просмотра документации.
- 04Предоставляет хуки для настройки на всех этапах генерации спецификации.
- 05Поддерживает проверку с помощью swagger-spec-validator и встроенное кэширование ответов.
- 06Работает с URLPathVersioning и NamespaceVersioning.
Сценарии использования
- Документирование существующего API на Django REST Framework без ручного написания спецификации.
- Создание файла OpenAPI 2.0 для генерации клиентского кода с помощью swagger-codegen.
- Публикация интерактивной документации API для внутренних или внешних разработчиков из проекта на Django.
Темы
Частые вопросы
- Что такое drf-yasg?
- Создаёт спецификации Swagger/OpenAPI 2.0 и интерактивную документацию по API на Django REST Framework. drf-yasg анализирует представления и сериализаторы Django REST Framework и формирует на их основе схему OpenAPI 2.0 (Swagger), поэтому документация API соответствует коду и не требует ручного обновления. Схему можно отдавать в формате JSON или YAML, а библиотека включает swagger-ui и ReDoc, чтобы просматривать сгенерированную документацию прямо в проекте.
- drf-yasg можно использовать бесплатно? Какая у него лицензия?
- drf-yasg распространяется с открытым исходным кодом под лицензией Other. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- drf-yasg всё ещё поддерживается?
- Активно поддерживается. Последний коммит в drf-yasg — 9 окт. 2026 г..
- Для чего можно использовать drf-yasg?
- Документирование существующего API на Django REST Framework без ручного написания спецификации. Создание файла OpenAPI 2.0 для генерации клиентского кода с помощью swagger-codegen. Публикация интерактивной документации API для внутренних или внешних разработчиков из проекта на Django.
- Где скачать drf-yasg?
- Исходный код и инструкции по установке — на GitHub: https://github.com/axnsan12/drf-yasg
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Java-библиотека, которая генерирует спецификации OpenAPI по аннотациям кода и REST API на JAX-RS и поддерживает OpenAPI 3.x.
Swagger UI отображает в браузере интерактивную документацию API на основе спецификации OpenAPI/Swagger.
Набор инструментов с открытым исходным кодом для OpenAPI/Swagger: интерактивная справка по API, API-клиент с приоритетом работы офлайн и интеграции со многими веб-фреймворками.
Инструмент для Go, который генерирует документацию API в формате Swagger 2.0 по аннотациям в комментариях к исходному коду.
Веб-фреймворк на Python для создания REST API с типами Python поверх Django, автоматической документацией OpenAPI и валидацией Pydantic.