本文共 2938 字,大约阅读时间需要 9 分钟。
Swagger能成为最受欢迎的REST APIs文档生成工具之一,有以下几个原因:
- Swagger 可以生成一个具有互动性的API控制台,开发者可以用来快速学习和尝试API。 - Swagger 可以生成客户端SDK代码用于各种不同的平台上的实现。 - Swagger 文件可以在许多不同的平台上从代码注释中自动生成。 - Swagger 有一个强大的社区,里面有许多强悍的贡献者。下面就实战django rest swagger为drf生成api接口文档
pip install django==1.11.6pip instal djangorestframeworkpip install django-rest-swagger
startproject apiteststartapp api
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,}
# 序列化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__"
# 视图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
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'))]
转载地址:http://mkksi.baihongyu.com/