简要说明 django restframework 的交互式文档

现在为了解决前后端交互沟通的问题,不少框架都推出了相关的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版本就有了).

交互视图显示的查询字符串参数就是上方这么配置的,不然可能无法传递参数.

整体来说,这个交互式文档还是挺不错的.

原文地址:https://www.cnblogs.com/haiton/p/11217910.html