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线程池的实现实例
Nov 18 Python
python 开发的三种运行模式详细介绍
Jan 18 Python
pandas多级分组实现排序的方法
Apr 20 Python
numpy添加新的维度:newaxis的方法
Aug 02 Python
Python面向对象之继承和组合用法实例分析
Aug 27 Python
pandas DataFrame 删除重复的行的实现方法
Jan 29 Python
python初学者,用python实现基本的学生管理系统(python3)代码实例
Apr 10 Python
pytorch 图像中的数据预处理和批标准化实例
Jan 15 Python
tensorboard 可以显示graph,却不能显示scalar的解决方式
Feb 15 Python
Python用SSH连接到网络设备
Feb 18 Python
python3 hdf5文件 遍历代码
May 19 Python
python-opencv 中值滤波{cv2.medianBlur(src, ksize)}的用法
Jun 05 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
基于PHP对XML的操作详解
2013/06/07 PHP
destoon网站转移服务器后搜索汉字出现乱码的解决方法
2014/06/21 PHP
php扩展开发入门demo示例
2019/09/23 PHP
thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结
2019/10/10 PHP
[转]JS宝典学习笔记
2007/02/07 Javascript
javascript实现的listview效果
2007/04/28 Javascript
非常强大的 jQuery.AsyncBox 弹出对话框插件
2011/08/29 Javascript
JavaScript入门教程之引用类型
2016/05/04 Javascript
微信小程序 navigation API实例详解
2016/10/02 Javascript
关于webuploader插件使用过程遇到的小问题
2016/11/07 Javascript
Vue.js父与子组件之间传参示例
2017/02/28 Javascript
简单实现js上传文件功能
2017/08/21 Javascript
浅谈react受控组件与非受控组件(小结)
2018/02/09 Javascript
vue实现tab切换外加样式切换方法
2018/03/16 Javascript
node.js中ws模块创建服务端和客户端,网页WebSocket客户端
2019/03/06 Javascript
解决vue初始化项目一直停在downloading template的问题
2020/11/09 Javascript
用Python进行基础的函数式编程的教程
2015/03/31 Python
Python基础中所出现的异常报错总结
2016/11/19 Python
python+django+sql学生信息管理后台开发
2018/01/11 Python
Python实现将通信达.day文件读取为DataFrame
2018/12/22 Python
PyCharm2018 安装及破解方法实现步骤
2019/09/09 Python
如何基于python实现脚本加密
2019/12/28 Python
浅谈keras中自定义二分类任务评价指标metrics的方法以及代码
2020/06/11 Python
Django ORM判断查询结果是否为空,判断django中的orm为空实例
2020/07/09 Python
python3代码输出嵌套式对象实例详解
2020/12/03 Python
.net开发工程师面试题
2014/02/25 面试题
《挑山工》的教学反思
2014/02/16 职场文书
教师应聘自荐信范文
2014/03/14 职场文书
纪念九一八事变演讲稿:忘记意味着背叛
2014/09/14 职场文书
大学军训自我鉴定大全
2014/09/18 职场文书
会计试用期自我评价
2014/09/19 职场文书
2014财务年度工作总结
2014/11/11 职场文书
实名检举信范文
2015/03/02 职场文书
2016年“9.22”世界无车日活动小结
2016/04/05 职场文书
SpringBoot生成License的实现示例
2021/06/16 Java/Android
python自动化操作之动态验证码、滑动验证码的降噪和识别
2021/08/30 Python