博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django Rest Swagger生成api文档
阅读量:4100 次
发布时间:2019-05-25

本文共 2938 字,大约阅读时间需要 9 分钟。

关于swagger

Swagger能成为最受欢迎的REST APIs文档生成工具之一,有以下几个原因:

- Swagger 可以生成一个具有互动性的API控制台,开发者可以用来快速学习和尝试API。
- Swagger 可以生成客户端SDK代码用于各种不同的平台上的实现。
- Swagger 文件可以在许多不同的平台上从代码注释中自动生成。
- Swagger 有一个强大的社区,里面有许多强悍的贡献者。

下面就实战django rest swagger为drf生成api接口文档

环境

  • Python3.6
  • Django1.11
  • django-rest-swagger
  • djangorestframework

安装

pip install django==1.11.6pip instal djangorestframeworkpip install django-rest-swagger

创建项目和app

startproject apiteststartapp api

配置 rest_api/settings.py

INSTALLED_APPS = [    'django.contrib.admin',    'django.contrib.auth',    'django.contrib.contenttypes',    'django.contrib.sessions',    'django.contrib.messages',    'django.contrib.staticfiles',    # 加入以下    'api',    'rest_framework',    'rest_framework_swagger',]# 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,}

配置api/serializer.py

# 序列化from django.contrib.auth.models import User,Groupfrom  rest_framework import serializersclass UserSerializer(serializers.HyperlinkedModelSerializer):    class Meta:        model = User        fields = "__all__"class GroupSerializer(serializers.HyperlinkedModelSerializer):    class Meta:        model =Group        fields = "__all__"

配置api/views.py

# 视图from  django.contrib.auth.models import User,Groupfrom rest_framework import viewsetsfrom  api.serializers import UserSerializer,GroupSerializer# Create your views here.class UserViewSet(viewsets.ModelViewSet):    '''查看,编辑用户的界面'''    queryset = User.objects.all().order_by('-date_joined')    serializer_class = UserSerializerclass GroupViewSet(viewsets.ModelViewSet):    '''查看,编辑组的界面'''    queryset = Group    serializer_class = GroupSerializer

配置apitest/urls.py

from django.conf.urls import url,includefrom django.contrib import adminfrom  rest_framework import routersfrom  api import views# 路由router = routers.DefaultRouter()router.register(r'users',views.UserViewSet,base_name='user')router.register(r'groups',views.GroupViewSet,base_name='group')# 重要的是如下三行from rest_framework.schemas import get_schema_viewfrom rest_framework_swagger.renderers import SwaggerUIRenderer, OpenAPIRendererschema_view = get_schema_view(title='Users API', renderer_classes=[OpenAPIRenderer, SwaggerUIRenderer])urlpatterns = [    # swagger接口文档路由    url(r'^docs/', schema_view, name="docs"),    url(r'^admin/', admin.site.urls),    url(r'^',include(router.urls)),    # drf登录    url(r'^api-auth/',include('rest_framework.urls',namespace='rest_framework'))]

最终效果

drf自带的接口UI

drf.png

swagger UI

swagger ui.png

转载地址:http://mkksi.baihongyu.com/

你可能感兴趣的文章
OpenFeign学习(四):OpenFeign的方法同步请求执行
查看>>
OpenFeign学习(五):OpenFeign请求结果处理及重试控制
查看>>
OpenFeign学习(六):OpenFign进行表单提交参数或传输文件
查看>>
OpenFeign学习(七):Spring Cloud OpenFeign的使用
查看>>
Ribbon 学习(二):Spring Cloud Ribbon 加载配置原理
查看>>
Ribbon 学习(三):RestTemplate 请求负载流程解析
查看>>
深入理解HashMap
查看>>
XML生成(一):DOM生成XML
查看>>
XML生成(三):JDOM生成
查看>>
Ubuntu Could not open lock file /var/lib/dpkg/lock - open (13:Permission denied)
查看>>
collect2: ld returned 1 exit status
查看>>
C#入门
查看>>
查找最大值最小值
查看>>
杨辉三角
查看>>
冒泡排序法
查看>>
C#中ColorDialog需点两次确定才会退出的问题
查看>>
16、Memento 备忘录模式
查看>>
Java基础篇(一)
查看>>
数据库
查看>>
mysql update与group by
查看>>