现在为了解决前后端交互沟通的问题,不少框架都推出了相关的swage库, 用起来似乎很是友好.
正好最近在开发一个小项目,想到新项目就用新版本新技术的理念,我下载了restframework 3.7的版本,突然发现这个版本和django的旧版本有些许不兼容,于是去查看了下文档,惊喜的发现这个库已经集成了交互式API文档的功能了,不得不说,restframework是个有理想有追求的作品.也感慨我这被公司旧项目束缚了眼界的技术面.
好东西立马开始体验,官方给的入门很简单,在根路由文件里注册现成的视图即可简单入门
1 from django.contrib import admin 2 from django.conf.urls import url, include 3 from rest_framework.documentation import include_docs_urls 4 5 API_TITLE = 'API 交互文档' 6 API_DESCRIPTION = '有问题单独联系, 仅作为参考文档.' 7 8 urlpatterns = [ 9 url(r'admin/', admin.site.urls), 10 url(r'docs/', include_docs_urls(title=API_TITLE, description=API_DESCRIPTION)) 11 ]
这样之后,在访问/docs时就会发现这么个界面:
点击绿色的 INTERACT按钮就可打开测试页面,上图中的参数部分本不该出现的,应该在进行了下面的视图配置后才会出现:
import coreapi from django.shortcuts import render from rest_framework.views import APIView from rest_framework.response import Response from rest_framework.schemas import AutoSchema from apps.cores_base import BaseAPIView # Create your views here. class ProductAPIView(BaseAPIView): """商品管理""" schema = AutoSchema(manual_fields=[coreapi.Field('order', location='query'),coreapi.Field('cls', location='query'),coreapi.Field('store', location='query'),]) def get(self, request): """获取商品列表或单个商品""" params = { 'pk': request.query_params.get('pk'), 'cls': request.query_params.get('cls', None), 'store': request.query_params.get('store', None), 'order': request.query_params.get('order', None) } return Response({'status': 0, 'data': params})
新版restframework在APIView视图中加了个类属性 schema (3.6版本就有了).
交互视图显示的查询字符串参数就是上方这么配置的,不然可能无法传递参数.
整体来说,这个交互式文档还是挺不错的.