django-rest-swagger显示接口备注内容

Swagger是一個API開發者的工具框架,用於生成、描述、調用和可視化RESTful風格的Web服務。總體目標是使客戶端和文件系統服務器以同樣的速度來更新,方法,參數和模型緊密集成到服務器端的代碼中,允許API始終保持同步。

在使用 django-rest-framework 進行API開發,可以使用django-rest-swagger接入swagger自動生成接口文檔。

1. 安裝django-rest-swagger

pip install django-rest-swagger

2.配置settings.py

INSTALLED_APPS = [...‘rest_framework_swagger‘...
]REST_FRAMEWORK = {'DEFAULT_AUTHENTICATION_CLASSES': ('rest_framework.authentication.TokenAuthentication',),'DEFAULT_SCHEMA_CLASS':'rest_framework.schemas.AutoSchema','DEFAULT_PARSER_CLASSES': ['rest_framework.parsers.FormParser','rest_framework.parsers.MultiPartParser','rest_framework.parsers.JSONParser',]
}

3. views.py

該博文的項目是django-rest-framework中文站點的例子:https://q1mi.github.io/Django-REST-framework-documentation

當需要對接口的各種方法進行註釋時,直接在該類下添加註釋,如下所示。需要註意是的:註釋的方法名稱(如 get、post)要對應該類所含的方法名稱

class SnippetList(generics.ListCreateAPIView):"""get:Return all snippets.post:Create a new snippet instance."""queryset = Snippet.objects.all()serializer_class = SnippetSerializerpermission_classes = (permissions.IsAuthenticatedOrReadOnly,)def perform_create(self, serializer):serializer.save(owner=self.request.user)class SnippetDetail(generics.RetrieveUpdateDestroyAPIView):"""get:Return a snippet instance.put:Update a snippet instance.patch:Update a snippet instance.delete:Delete a snippet instance."""queryset = Snippet.objects.all()serializer_class = SnippetSerializerpermission_classes = (permissions.IsAuthenticatedOrReadOnly, IsOwnerOrReadOnly,)class UserList(generics.ListAPIView):"""get:Return all users"""queryset = MyUser.objects.all()serializer_class = UserSerializerclass UserDetail(generics.RetrieveAPIView):"""get:Return a user instance"""queryset = MyUser.objects.all()serializer_class = UserSerializerclass SnippetHighlight(generics.GenericAPIView):"""get:Return a highlight instance"""queryset = Snippet.objects.all()renderer_classes = (renderers.StaticHTMLRenderer,)def get(self, request, *args, **kwargs):snippet = self.get_object()return Response(snippet.highlighted)

在使用ModelViewSet时,用get/post/patch/会存在问题

所以需要看其django-restful源码,找到方法名:

class QR_result_table_ViewSet(viewsets.ModelViewSet):"""retrieve: Update a snippet instance.update:Update a snippet instance.partial_update:partial_update a snippet instance.destroy:Delete a snippet instance."""queryset = QR_result_table.objects.all()serializer_class = QR_result_table_Serializerpagination_class = ListPaginationfilter_backends = (filters.DjangoFilterBackend,)filter_class = QR_result_table_Filter

 

3.配置urls.py

from rest_framework.schemas import get_schema_view
from rest_framework_swagger.renderers import SwaggerUIRenderer, OpenAPICodec
schema_view = get_schema_view(title=‘API‘, renderer_classes=[SwaggerUIRenderer, OpenAPICodec])urlpatterns = [...url(r‘docs/‘, schema_view, name=‘docs‘)...
]

 

運行manage.py後,瀏覽器訪問 http://127.0.0.1:8000/,可以看到以下內容:

技術分享圖片

訪問 http://127.0.0.1:8000/docs/,可以看到接口文檔如下:

技術分享圖片

 

點擊打開snippets,可以看到如下,每個方法後面都有你在views.py中添加的註釋

 

點擊打開get方法,如下

技術分享圖片

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/455798.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安全和连接是IoT联网设备2大挑战

IoT正在推动500亿个联网设备在未来10年内从工业、零售、智能照明、智慧城市、汽车、农业、可穿戴设备、智能建筑、医疗市场涌现出来,ARM处理器部门市场营销总监Ian Smythe表示:“到2020年,消费电子和健康、智慧城市和物流、汽车和运输领域的I…

windows下部署免费ssl证书(letsencrypt)

随着网络的发展,网络安全也越来越重要,对于网站来说,从Http升级到https也是我们要做的首要事情。要实现https,首先我们需要申请一张SSL证书,这篇文章我主要介绍下边这几个方面: 1. SSL简单介绍 2. 免费Lete…

python中什么是关键字参数_如何使用python语言中函数的关键字参数的用法

一般情况下,在调用函数时,使用的是位置参数,即是按照参数的位置来传值;关键字参数是按照定义函数传入的参数名称来传值的。那么,关键字参数怎么使用?工具/原料 python pycharm 截图工具 WPS 方法/步骤 1 打…

【SSL】HTTPS配置全过程

服务器配置https协议 HTTPS,是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 配置HTTPS就需要证书,关于证书方面不做过多解释,只…

输出四位完全平方数_完全平方数中的规律

PS:很近之前自己收集的资料一个正整数如果是另一个整数的完全平方,那么我们就称这个数为完全平方数,也叫做平方数。如:0,1,4,9,16,25,36,49&#…

为企业提供本地销售人员的Universal Avenue获1000万美元A轮融资

为各类B2B企业提供本地销售人员的瑞典初创企业Universal Avenue近日获得了1000万美元的A轮融资。此轮融资由Eight Roads(富达国际的投资机构)领投,原有投资者Northzone和MOOR跟投,加上2015年获得的500万美元种子轮融资&#xff0c…

【Linux分享】Linux常用命令+教程分享

今天分享分为两部分 :) PART01 Linux常用命令分享/ PART02 关于BD面试经验分享 30mins Linux Command: PART 1 你本可以张口就来..... 本篇内容分享的宗旨: 拿下Linux面试 别面试的时候呆呆地说个ls了🚑 本篇分享详细地介绍了常用Linux指令的功能、语法、参…

万能无线鼠标对码软件_400元就能买ROG无线游戏鼠标,ROG影刃2无线版使用体验...

影刃2是ROG刚刚推出的一款新产品,定位入门游戏玩家。目前市面上定位入门游戏玩家的无线鼠标真不多,400块以内的预算想要选购一款合适的无线游戏鼠标,选择其实非常有限。 就ROG产品线而言,烈刃2的价格到了700块钱;罗技G…

wampserver 虚拟主机

转载:http://blog.csdn.net/knight_quan/article/details/51830683 1.背景: 在进行网站开发的时候,通常需要以http://localhost或者127.0.0.1等地址来访问本地环境的网站。不过随着开发项目的增多,需要每次先访问localhost然后再选…

PL/SQL的结构

2019独角兽企业重金招聘Python工程师标准>>> [DECLARE] --声明开始关键字/*这里是声明部分,包括PL/SQL中的变量、常量以及类型第等*/BEGIN --执行部分开始标志/*这里是执行部分,是整个PL/SQL块的主体部分,该部分必须存在,可以是SQL语句或流程控制语句等…

cf方框透视易语言代码怎么写_易语言真的那么不入流吗?

很多人鄙视易语言,为什么那么多人一提易语言,除了骂,还是骂,易语言很大错误吗?知乎上的大神们是这么说的一个语言的“入流”,和是不是英文关键字无关,而是和这种语言进入某一子行业的契机有关。…

python发展历程

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! Python是我喜欢的语言,简洁,优美,容易使用。前两天,我很激昂的向朋友宣传Python的好处。 听过之…

【Django】RBAC权限管理系统模块-理解

今天文章分为两部分 :) PART1 RBAC权限管理内容分享/ PART2 关于字节跳动一面 10 Minutes Django-RBAC: PART 1 这权限管理系统主要功能是什么? 顾名思义,在系统中可以灵活的划分角色组,可以根据功能特性来划分:- 比如设置系…

Linux使用circos

1.在conda中安装bioconda conda install -c bioconda circos -y # 测试是否所有的module都安装好了 circos -module # 所有都显示OK则成功 ok 0.39 Font::TTF::Font ok 2.68 GD ok 0.2 GD::Polyline ... .... 2.检查模块是否齐全 circos -module 3.下…

【Mysql】数据库主从搭建-基于docker

后台可回复【1024】即可获取相关宝藏内容分享 :) 为什么基于Docker搭建? 资源有限 虚拟机搭建对机器配置有要求,并且安装mysql步骤繁琐 一台机器上可以运行多个Docker容器 Docker容器之间相互独立,有独立ip,互不冲突…

java创建对象new后面为啥可以传入参数_你有认真了解过自己的“Java对象”吗?渣男...

对象在 JVM 中是怎么存储的对象头里有什么?作为一名 Javaer,生活中的我们可能暂时没有对象,但是工作中每天都会创建大量的 Java 对象,你有试着去了解下自己的“对象”吗?我们从四个方面重新认识下自己的“对象”创建对…

【技术+某度面经】Jenkins 内容+百度面经分享

后台可回复【1024】即可获取相关宝藏内容分享 :) Q1: Jenkins是什么?? A:Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。 今天文章分为两部分 :) PART1 Jenkins技术分享 / PART2 关…

xcode多工程联编 - 详细教程

2019独角兽企业重金招聘Python工程师标准>>> 一、创建workspace (MyProject)放入MyProject文件夹内 二、先 打开workspace 创建app1工程 点击next之后注意选择 workspace 同理创建app2 或者更多的工程 完成之后的工作 重新打开workspace的样子 三、使用pod 库 首先…

实数是不是python数据类型_python 基本数据类型

一、数据类型及操作 #整数类型,和数学中整数的一样,可正可负 *十进制:210 *二进制:以0B或者0b开头:0b1010 *八进制:以0O或者0o开头:0o123 *十六进制:以0x或者0X开头:0x9a…

Principle of Computing (Python)学习笔记(7) DFS Search + Tic Tac Toe use MiniMax Stratedy

1. Trees Tree is a recursive structure. 1.1 math nodes https://class.coursera.org/principlescomputing-001/wiki/view?pagetrees 1.2 CODE无parent域的树 http://www.codeskulptor.org/#poc_tree.py class Tree:"""Recursive definition for tree…