• 简要说明 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版本就有了).

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

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

  • 相关阅读:
    致 CODING 用户的元宵问候
    持续集成之理论篇
    基于 CODING 的 Spring Boot 持续集成项目
    使用 CODING 进行 Hexo 项目的持续集成
    使用 CODING 进行 Spring Boot 项目的集成
    三种前端模块化规范
    XSS和CSRF
    小问题填坑,关于obj.x和obj["x"]
    说一个闭包在实际开发中的应用
    关于return的分号自动插入问题
  • 原文地址:https://www.cnblogs.com/haiton/p/11217910.html
Copyright © 2020-2023  润新知