django-rest-swagger对API接口注释的方法


Posted in Python onAugust 29, 2019

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'

 ...
]

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 = SnippetSerializer
 permission_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 = SnippetSerializer
 permission_classes = (permissions.IsAuthenticatedOrReadOnly, IsOwnerOrReadOnly,)


class UserList(generics.ListAPIView):
 """
 get:
 Return all users
 """
 queryset = MyUser.objects.all()
 serializer_class = UserSerializer


class UserDetail(generics.RetrieveAPIView):
 """
 get:
 Return a user instance
 """
 queryset = MyUser.objects.all()
 serializer_class = UserSerializer


class 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)

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/,可以看到以下内容:

django-rest-swagger对API接口注释的方法

访问 http://127.0.0.1:8000/docs/,可以看到接口文档如下:

django-rest-swagger对API接口注释的方法

点击打开snippets,可以看到如下,每个方法后面都有你在views.py中添加的注释

django-rest-swagger对API接口注释的方法

点击打开get方法,如下

django-rest-swagger对API接口注释的方法

以上这篇django-rest-swagger对API接口注释的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python使用正则匹配实现抓图代码分享
Apr 02 Python
python特性语法之遍历、公共方法、引用
Aug 08 Python
Python爬虫之正则表达式的使用教程详解
Oct 25 Python
Python代码实现删除一个list里面重复元素的方法
Apr 02 Python
Python中如何导入类示例详解
Apr 17 Python
Python K最近邻从原理到实现的方法
Aug 15 Python
Django上线部署之IIS的配置方法
Aug 22 Python
Python实现报警信息实时发送至邮箱功能(实例代码)
Nov 11 Python
Python yield的用法实例分析
Mar 06 Python
python实现将中文日期转换为数字日期
Jul 14 Python
如何用Python提取10000份log中的产品信息
Jan 14 Python
Requests什么的通通爬不了的Python超强反爬虫方案!
May 20 Python
Python3视频转字符动画的实例代码
Aug 29 #Python
scikit-learn线性回归,多元回归,多项式回归的实现
Aug 29 #Python
python中property属性的介绍及其应用详解
Aug 29 #Python
django-rest-swagger的优化使用方法
Aug 29 #Python
使用虚拟环境打包python为exe 文件的方法
Aug 29 #Python
python实现最大优先队列
Aug 29 #Python
django连接oracle时setting 配置方法
Aug 29 #Python
You might like
apache mysql php 源码编译使用方法
2012/05/03 PHP
详解PHP实现执行定时任务
2015/12/21 PHP
Yii 2.0在Grid中格式化时间方法示例
2017/06/06 PHP
PHP 布尔值的自增与自减的实现方法
2018/05/03 PHP
javascript基于jQuery的表格悬停变色/恢复,表格点击变色/恢复,点击行选Checkbox
2008/08/05 Javascript
浅谈Javascript事件处理程序的几种方式
2012/06/27 Javascript
nodejs之请求路由概述
2014/07/05 NodeJs
JS实现仿QQ聊天窗口抖动特效
2015/05/10 Javascript
聊一聊JavaScript作用域和作用域链
2016/05/03 Javascript
js创建数组的简单方法
2016/07/27 Javascript
原生js实现节日时间倒计时功能
2017/01/18 Javascript
支持移动端原生js轮播图
2017/02/16 Javascript
JS实现区分中英文并统计字符个数的方法示例
2018/06/09 Javascript
vue实现键盘输入支付密码功能
2018/08/18 Javascript
在mpvue框架中使用Vant WeappUI组件库的注意事项【推进】
2019/06/09 Javascript
vant组件中 dialog的确认按钮的回调事件操作
2020/11/04 Javascript
[55:39]DOTA2-DPC中国联赛 正赛 VG vs LBZS BO3 第二场 1月19日
2021/03/11 DOTA
Python中列表(list)操作方法汇总
2014/08/18 Python
Python中datetime常用时间处理方法
2015/06/15 Python
使用Django的模版来配合字符串翻译工作
2015/07/27 Python
python实现zabbix发送短信脚本
2018/09/17 Python
浅谈python3发送post请求参数为空的情况
2018/12/28 Python
Python 限定函数参数的类型及默认值方式
2019/12/24 Python
Python数据可视化实现漏斗图过程图解
2020/07/20 Python
利用python为PostgreSQL的表自动添加分区
2021/01/18 Python
使用CSS3实现一个3D相册效果实例
2016/12/03 HTML / CSS
公司前台接待岗位职责
2013/12/03 职场文书
《奇妙的国际互联网》 教学反思
2014/02/25 职场文书
公开服务承诺制度
2014/03/26 职场文书
先进党组织事迹材料
2014/12/26 职场文书
国家助学金感谢信
2015/01/21 职场文书
监考失职检讨书
2015/01/26 职场文书
庆七一晚会主持词
2015/06/30 职场文书
2015年统计员个人工作总结
2015/07/23 职场文书
Python 用户输入和while循环的操作
2021/05/23 Python
python对文档中元素删除,替换操作
2022/04/02 Python