Django Swagger接口文档生成

Swagger优势

1)Swagger可生成一个具有互动性的API控制台,开发者可快速学习和尝试API
2)Swagger可生成客户端SDK代码,用于不同平台上(Java、Python…)的实现
3)Swagger文件可在许多不同的平台上从代码注释中自动生成
4)Swagger有一个强大的社区,里面有许多强悍的贡献者

Django接入Swagger

大致步骤

1.安装drf_yasg
2.进入到setting.py文件,添加django-rest-swagger应用
3.进入到views.py,将之前定义的UserViewSet和GroupViewset补充注释
4.在urls.py中添加get_schema_view辅助函数
5.启动Django服务,检测Swagger接口文档配置效果
环境

python 3.8

Django 3.0.6

djangorestframework== 3.12.4

drf_yasg==1.1.0

安装

drf_yasg==1.1.0

配置

INSTALLED_APPS = [
	...
    'drf_yasg'
]
末尾处添加swagger 配置项
SWAGGER_SETTINGS = {
    # 基础样式
    'SECURITY_DEFINITIONS': {
        "basic":{
            'type': 'basic'
        }
    },
    # 如果需要登录才能够查看接口文档, 登录的链接使用restframework自带的.
    'LOGIN_URL': 'rest_framework:login',
    'LOGOUT_URL': 'rest_framework:logout',
    # 'DOC_EXPANSION': None,
    # 'SHOW_REQUEST_HEADERS':True,
    # 'USE_SESSION_AUTH': True,
    # 'DOC_EXPANSION': 'list',
    # 接口文档中方法列表以首字母升序排列
    'APIS_SORTER': 'alpha',
    # 如果支持json提交, 则接口文档中包含json输入框
    'JSON_EDITOR': True,
    # 方法列表字母排序
    'OPERATIONS_SORTER': 'alpha',
    'VALIDATOR_URL': None,
}

配置根目录下的URL:

schema_view = get_schema_view(
   openapi.Info(
      title="Snippets API",
      default_version='v1',
      description="Test description",
      terms_of_service="https://www.google.com/policies/terms/",
      contact=openapi.Contact(email="contact@snippets.local"),
      license=openapi.License(name="BSD License"),
   ),
   public=True,
   permission_classes=(permissions.AllowAny,),
)

urlpatterns +=[
	url(r'^swagger/$', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
	url(r'^redoc/$', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'),
 ]
@swagger_auto_schema(
        operation_summary="知识库详情页",
        responses={
            "200": KnowledgeBaseRetrieveSerializer(many=True),
        },
        operation_description="知识库详情页",
    )
    字段详解
   operation_summary: 操作摘要字符串
   responses: 记录的手动响应的字典
   operation_description: 操作描述覆盖
   method:对于多方法视图,选项应应用于的 http 方法
   methods:对于多方法视图,选项应应用于的 http 方法
   auto_schema:用于生成 Operation 对象的自定义类;这覆盖了类级别的“swagger_schema”属性和“DEFAULT_AUTO_SCHEMA_CLASS”设置,并且可以设置为“无”以防止生成此操作
   request_body:post方法中传的值
   query_serializer:序列化参数
   manual_parameters:要覆盖的参数列表
   operation_id:操作 ID 覆盖;操作 ID 在整个 API 中必须是唯一的
   security: 安全要求覆盖;用于指定哪种身份验证机制
   deprecated:操作的弃用状态
   field_inspectors:额外的序列化器和现场检查器;
   filter_inspectors:额外的过滤器检查器
   paginator_inspectors:额外的分页检查器
   tags:标签覆盖
   
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值