开源工具,可根据 OpenAPI、Swagger、AsyncAPI 或 GraphQL 定义生成响应式的 API 参考文档站点。
axnsan12/drf-yasg
从 Django REST Framework 代码自动生成 Swagger/OpenAPI 2.0 规范与在线文档。
- Star
- 3,547
- Fork
- 439
- 未关闭 Issue
- 218
- 最近提交
- 29天前
这是什么?
drf-yasg 通过分析 Django REST Framework 的视图和序列化器,自动生成 OpenAPI 2.0(Swagger)规范,让接口文档直接跟随代码更新,无需手工维护。生成的规范可以以 JSON 或 YAML 格式输出,并内置 swagger-ui 与 ReDoc 页面,方便直接在项目中浏览文档。
接入时只需将应用加入 INSTALLED_APPS,并在 urls.py 中挂载 schema 视图。它支持嵌套序列化器,并在规范生成的各个环节提供自定义钩子。视图默认支持缓存,也可以借助 swagger-spec-validator 对生成的规范做校验。
该项目只支持 OpenAPI 2.0。作者在文档中建议需要 OpenAPI 3.0 的新项目改用 drf-spectacular,并表示 drf-yasg 短期内不太可能支持 3.0。
核心功能
- 01根据 DRF 视图和序列化器生成 Swagger/OpenAPI 2.0 规范,支持嵌套序列化器。
- 02规范可输出为 JSON 或 YAML 格式。
- 03内置 swagger-ui 和 ReDoc 用于浏览接口文档。
- 04在规范生成的各个环节提供自定义钩子。
- 05可选使用 swagger-spec-validator 校验规范,并支持视图缓存。
- 06支持 URLPathVersioning 和 NamespaceVersioning 版本方案。
适用场景
- 为现有 Django REST Framework 接口自动生成文档,免去手写规范。
- 生成 OpenAPI 2.0 文件,供 swagger-codegen 生成客户端代码。
- 在 Django 项目中向开发者提供可交互的 API 文档页面。
标签
#django#django-rest-framework#openapi#swagger#api-documentation#python#rest-api#coreapi#django-rest-swagger#documentation-generator
常见问题
- drf-yasg 是什么?
- 从 Django REST Framework 代码自动生成 Swagger/OpenAPI 2.0 规范与在线文档。 drf-yasg 通过分析 Django REST Framework 的视图和序列化器,自动生成 OpenAPI 2.0(Swagger)规范,让接口文档直接跟随代码更新,无需手工维护。生成的规范可以以 JSON 或 YAML 格式输出,并内置 swagger-ui 与 ReDoc 页面,方便直接在项目中浏览文档。
- drf-yasg 可以免费使用吗?用的什么许可证?
- drf-yasg 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
- drf-yasg 还在维护吗?
- 活跃维护中。drf-yasg 最近一次提交是在 2026年10月9日。
- drf-yasg 适合用来做什么?
- 为现有 Django REST Framework 接口自动生成文档,免去手写规范。 生成 OpenAPI 2.0 文件,供 swagger-codegen 生成客户端代码。 在 Django 项目中向开发者提供可交互的 API 文档页面。
- 在哪里获取 drf-yasg?
- 源代码和安装说明在 GitHub 上:https://github.com/axnsan12/drf-yasg
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
2.6万+10 本周2407TypeScriptMIT维护活跃更新于 前天
Java 库,通过注解和 JAX-RS 接口自动生成 OpenAPI 规范文档,支持 OpenAPI 3.x。
7535+3 本周2255JavaApache-2.0维护活跃更新于 前天
Swagger UI 可根据 OpenAPI/Swagger 规范文件在浏览器中生成可交互的 API 文档。
2.9万+11 本周9248JavaScriptApache-2.0更新于 19小时前
开源的 OpenAPI/Swagger 工具集,提供交互式 API 文档、离线优先的 API 客户端和多种 Web 框架集成。
1.6万+31 本周966TypeScriptMIT更新于 18小时前
从 Go 源码注释中的声明式标注自动生成 Swagger 2.0 接口文档的工具。
1.3万1492GoMIT更新于 上个月