drf-spectacular
drf-spectacular 是一个为 Django REST framework(DRF)生成 OpenAPI 3.0.3/3.1 规范文档的工具,具有以下核心功能和特性:
- 智能模式生成
自动从 DRF 中提取序列化器、视图、参数等信息,支持复杂嵌套、递归结构,提供灵活的自定义选项(如@extend_schema装饰器)。 - 高度可定制
- 支持覆盖请求/响应序列化器、添加参数、定义多态响应、设置示例、调整操作名称等。
- 集成第三方库(如
django-polymorphic、SimpleJWT、django-filter等)。
- 兼容性与扩展性
- 支持 OpenAPI 3.1,提供国际化、标签分类、认证配置(DRF 原生及自定义)、
SerializerMethodField类型推断等。 - 可通过
SpectacularAPIView直接在 API 中提供 Schema,并支持 Swagger UI/Redoc 界面。
- 支持 OpenAPI 3.1,提供国际化、标签分类、认证配置(DRF 原生及自定义)、
- 开箱即用
默认配置可直接使用,仅需安装包、添加drf_spectacular到INSTALLED_APPS,并设置DEFAULT_SCHEMA_CLASS。
- 安装
Terminal window pip install drf-spectacular - 配置
INSTALLED_APPS = ['drf_spectacular']REST_FRAMEWORK = {'DEFAULT_SCHEMA_CLASS': 'drf_spectacular.openapi.AutoSchema'}
- 设置元数据
SPECTACULAR_SETTINGS = {'TITLE': '项目名称','DESCRIPTION': '描述','VERSION': '1.0.0',# 其他配置如 UI 静态文件路径、验证规则等}
- 生成 Schema
- 命令行生成文件:
Terminal window python manage.py spectacular --file schema.yml - 在 Django URL 中添加视图:
path('api/schema/', SpectacularAPIView.as_view(), name='schema'),path('api/schema/swagger-ui/', SpectacularSwaggerView.as_view(url_name='schema'), name='swagger-ui'),
- 命令行生成文件:
适用于需要生成高质量 OpenAPI 文档的 DRF 项目,尤其适合需自定义参数、多语言支持、集成第三方库的复杂 API 场景。