【swagger】DRF使用rest_framework_swagger

一、rest_framework_swagger 介绍

在 Django REST Framework(DRF)项目中,Swagger 是一个常用的工具,用于自动生成 API 文档并提供交互式界面,帮助开发人员更好地理解和测试 API。rest_framework_swagger 是一个与 DRF 集成的第三方库,它能够将 DRF API 自动转换为 Swagger 文档。

二、DRF项目配置

  1. 要在 DRF 项目中使用 rest_framework_swagger,首先需要安装该库。可以通过 pip 进行安装:

    pip install django-rest-swagger
    
  2. 添加应用到INSTALLED_APPS: 在 Django 项目的 settings.py 文件中,将 ‘rest_framework_swagger’ 添加到 INSTALLED_APPS 列表中:

    INSTALLED_APPS = [
        ...
        'rest_framework_swagger',
    ]
    
  3. 配置 URL 路由: 在 Django 项目的 urls.py 文件中,添加 rest_framework_swagger 的 URL 路由:

    if settings.RUN_MODE == "DEVELOP": # 开发环境才开放docs查看
        """
        开发时添加SWAGGER API DOC
        访问地址: http://xxx:8000/docs/
        """
        from rest_framework_swagger.views import get_swagger_view
    
        schema_view = get_swagger_view(title="%s API" % settings.APP_ID.upper())
        urlpatterns += [path("docs/", schema_view)]
    

    在此示例中,get_swagger_view() 函数用于创建 Swagger 视图,并将标题设置为 ‘API 文档’。然后,将此视图映射到 ‘/docs/’ URL。

  4. 完成配置后,您可以访问 http://xxx:8000/docs/,以查看自动生成的 Swagger API 文档。在 Swagger UI 中,您将看到列出了您的 API 端点和操作,并且可以尝试执行各种操作,例如发送请求并查看响应。

三、注意事项

下面注意事项是必须的,如果配置错误,访问docs会报错

  1. viewset中,必须要配置一个serializer_class。如果不需要serializer_class,viewset不要继承viewsets.ModelViewSet
  2. 如果配置了get_serializer_class方法,必须要有return。下面情形会报错,因为有一种情况是没有return的:
        def get_serializer_class(self, *args, **kwargs):
        """
        获取序列化类
        """
        if self.action == "retrieve":
            return RetrievexxxSerializer
        elif:
            return xxxSerializer
    

四、对接普通接口

function-based-views
因为django-rest-swagger是配合DRF使用的,对于非DRF框架实现对接口,要使用装饰器@api_view
然后,还需要加上@permission_classes([]) ,跳过DRF鉴权

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值