【DRF配置管理】如何建立swagger风格api接口文档

原文作者:我辈李想
版权声明:文章原创,转载时请务必加上原文超链接、作者信息和本声明。

DRF应用和管理

【DRF配置管理】Django安装DRF框架并生成openapi风格文档
【DRF配置管理】如何实现JWT身份验证
【DRF配置管理】如何使用序列化:验证码、注册和登录
【DRF配置管理】如何结合ORM实现排序、模糊搜索、范围查询
【DRF配置管理】如何在视图类使用get_objects()
【DRF配置管理】如何实现RBAC页面菜单和按钮权限
【DRF配置管理】如何建立coreapi风格api接口文档
【DRF配置管理】如何建立swagger风格api接口文档



前言

swagger风格的文档在很多语言中都存在,比如jave项目。DRF本身虽然可以实现swagger-ui展示,但是功能不完善,官方推荐的第三方库有drf-yasg 和drf-spectacular 。因为采用的身份验证方式不同,接口文档的设置会存在差异。如果使用的是jwt身份验证,我们需要专门设置对应的headers参数。


一、drf-yasg 的使用

1.安装drf-yasg

pip install drf-yasg

2.INSTALLED_APPS 参数

INSTALLED_APPS = [
     ....
    'drf_yasg',
     ...
]

3.REST_FRAMEWORK 参数

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
	    # 自己写的认证类
	    'studentSystemt.apps.user.authen.MyJWTAuthentication'

    ],
}

4.SWAGGER参数

这里针对的是jwt身份验证,实现jwt认证的相关文档生成。

SWAGGER_SETTINGS = {
    'USE_SESSION_AUTH': True,
    'SECURITY_DEFINITIONS': {
        'Token': {
            'type': 'apiKey',  #
            'name': 'Authorization',
            'in': 'header'
        },
    },
}

5.urls路由配置

from django.urls import path, include
from drf_yasg.views import get_schema_view
from drf_yasg import openapi

urlpatterns = [
	...
]

schema_view = get_schema_view(
    openapi.Info(
        title="API接口文档平台",  # 必传
        default_version='v1',  # 必传
        description="这是一个接口文档",
        terms_of_service="http://api.ty.site",
        contact=openapi.Contact(email="ty@qq.com"),
        license=openapi.License(name="BSD License"),
    ),
    public=True,
    permission_classes=(permissions.AllowAny,),  # 权限类
)
urlpatterns += [
    path('swagger/', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
    path('redoc/', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'),
]

注释信息参考【DRF配置管理】如何建立coreapi风格接口文档

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Django中使用DRFDjango Rest Framework)需要进行以下配置: 1. 安装DRF 可以通过pip安装DRF,命令如下: ``` pip install djangorestframework ``` 2. 在INSTALLED_APPS中添加'rest_framework' 在settings.py中的INSTALLED_APPS列表中添加'rest_framework',如下所示: ``` INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', 'myapp', ] ``` 3. 配置REST_FRAMEWORK设置 在settings.py中添加REST_FRAMEWORK设置,以配置DRF的一些选项,如下所示: ``` REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': [ 'rest_framework.authentication.SessionAuthentication', 'rest_framework.authentication.BasicAuthentication', ], 'DEFAULT_PERMISSION_CLASSES': [ 'rest_framework.permissions.IsAuthenticated', ], 'DEFAULT_RENDERER_CLASSES': [ 'rest_framework.renderers.JSONRenderer', 'rest_framework.renderers.BrowsableAPIRenderer', ], } ``` 以上设置包括了DRF中的默认身份验证类、默认权限类和默认渲染器类。可以根据需要进行修改。 4. 创建序列化器 在myapp中创建一个serializers.py文件,定义一个序列化器类,如下所示: ``` from rest_framework import serializers from myapp.models import MyModel class MyModelSerializer(serializers.ModelSerializer): class Meta: model = MyModel fields = '__all__' ``` 5. 创建视图 在myapp中创建一个views.py文件,定义一个视图类,如下所示: ``` from rest_framework import generics from myapp.models import MyModel from myapp.serializers import MyModelSerializer class MyModelList(generics.ListCreateAPIView): queryset = MyModel.objects.all() serializer_class = MyModelSerializer ``` 以上视图类继承了DRF提供的generics.ListCreateAPIView类,用于实现查询和创建操作。可以根据需要进行修改。 6. 创建URL 在myapp中的urls.py文件中定义一个URL,将视图类和URL绑定在一起,如下所示: ``` from django.urls import path from myapp.views import MyModelList urlpatterns = [ path('mymodel/', MyModelList.as_view(), name='mymodel-list'), ] ``` 以上是Django使用DRF的基本配置。可以根据项目需求进行调整和扩展。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我辈李想

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值