zoukankan      html  css  js  c++  java
  • Django-rest-framework(七)swagger使用

    在我们接口开发完之后,需要交付给别人对接,在没有使用swagger的时候,我们需要单独编写一份api接口文档,由postman之类的工具进行请求得到返回的结果。而有了swagger之后,可以通过提取接口代码中的注释来生成文档,并且可以直接在浏览器中调用,获取返回结果。先看下效果

    安装

    pip install django-rest-swagger
    

    setting.py 文件中添加

    INSTALLED_APPS = [
        ...
        'rest_framework_swagger',
        ...
    ]
    
    

    配置

    在settings.py中可以添加修改swagger相关的配置

    SWAGGER_SETTINGS = {
            # 这里可以用获取到的token来登录 
            'SECURITY_DEFINITIONS': {
                'api_key':{
                    'type': 'apiKey',
                    'in':'query', # token位置在url中
                    'name':'token' # 验权的字段
                    }
                },
            'USE_SESSION_AUTH': False,
            'JSON_EDITOR': False, # False,用户可以自己编辑格式,不用按照serializers中的数据添加。True,会有多个输入框,输入serializer对应的字段的值
            }
    

    urls.py 中添加一下代码

    
    from rest_framework.schemas import get_schema_view
    from rest_framework_swagger.renderers import SwaggerUIRenderer, OpenAPIRenderer
       
    schema_view = get_schema_view(title=‘API', renderer_classes=[OpenAPIRenderer, SwaggerUIRenderer])
    
    urlpatterns = [
        ...
        path('docs/', schema_view, name='docs'), # 线上环境中,最好去掉
        ]
    

    运行服务,访问docs/ 便可以发现生成的文档。

    NOTE

    • 注释支持markdown语法,可以方便的调整格式了
    • 改完代码,顺便修改注释就可以更新文档了
    • docs/ 会有权限的判断,所以访问所有接口,最好给所有的权限
    • 表单等的字段和view(action)对应的serializers相关
  • 相关阅读:
    导入myeclipse项目出现的问题及解决方案
    sqlserver允许远程连接的配置
    Microsoft SQL Server,附加数据库 错误:Error 916解决方法
    [svc]linux常用手头命令-md版-2017年11月12日 12:31:56
    [elk]es增删改查最佳实战
    [docker]docker日志驱动记录nginx日志情形探究
    [js]面向对象2
    [js]面向对象1
    [js]js中函数传参判断
    [k8s]k8s-ceph-statefulsets-storageclass-nfs 有状态应用布署实践
  • 原文地址:https://www.cnblogs.com/yuzhenjie/p/10374136.html
Copyright © 2011-2022 走看看