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 24 Python
利用Celery实现Django博客PV统计功能详解
May 08 Python
Python实现的文本编辑器功能示例
Jun 30 Python
python OpenCV学习笔记之绘制直方图的方法
Feb 08 Python
Python使用Selenium+BeautifulSoup爬取淘宝搜索页
Feb 24 Python
Django框架静态文件使用/中间件/禁用ip功能实例详解
Jul 22 Python
Python 仅获取响应头, 不获取实体的实例
Aug 21 Python
解决Python对齐文本字符串问题
Aug 28 Python
Python进程的通信Queue、Pipe实例分析
Mar 30 Python
Python如何使用vars返回对象的属性列表
Oct 17 Python
python函数超时自动退出的实操方法
Dec 28 Python
python 实现Requests发送带cookies的请求
Feb 08 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
采用ThinkPHP中F方法实现快速缓存实例
2014/06/13 PHP
php使用递归计算文件夹大小
2014/12/24 PHP
PHP生成和获取XML格式数据的方法
2016/03/04 PHP
PHP中“=>
2019/03/01 PHP
W3C Group的JavaScript1.8 新特性介绍
2009/05/19 Javascript
jquery ui dialog ie8出现滚动条的解决方法
2010/12/06 Javascript
JavaScript栏目列表隐藏/显示简单实现
2013/04/03 Javascript
简介JavaScript中toUpperCase()方法的使用
2015/06/06 Javascript
遮罩层点击按钮弹出并且具有拖动和关闭效果(两种方法)
2015/08/20 Javascript
JavaScript设计模式经典之命令模式
2016/02/24 Javascript
设计模式中的facade外观模式在JavaScript开发中的运用
2016/05/18 Javascript
JS实现图片的不间断连续滚动的简单实例
2016/06/03 Javascript
NodeJS实现客户端js加密
2017/01/09 NodeJs
layui获取选中行数据的实例讲解
2018/08/19 Javascript
js中自定义react数据验证组件实例详解
2018/10/19 Javascript
Vue中强制组件重新渲染的正确方法
2021/01/03 Vue.js
[03:38]TI4西雅图DOTA2前线报道 71专访
2014/07/08 DOTA
Python返回真假值(True or False)小技巧
2015/04/10 Python
Python的Flask框架中的Jinja2模板引擎学习教程
2016/06/30 Python
Python微信公众号开发平台
2018/01/25 Python
python pandas中对Series数据进行轴向连接的实例
2018/06/08 Python
python的常用模块之collections模块详解
2018/12/06 Python
pytorch 更改预训练模型网络结构的方法
2019/08/19 Python
Python + Requests + Unittest接口自动化测试实例分析
2019/12/12 Python
Python unittest 自动识别并执行测试用例方式
2020/03/09 Python
基于python实现获取网页图片过程解析
2020/05/11 Python
Python字符串及文本模式方法详解
2020/09/10 Python
HTML5应用之文件上传
2016/12/30 HTML / CSS
某公司C#程序员面试题笔试题
2014/05/26 面试题
小学少先队活动方案
2014/02/18 职场文书
公司合作意向书
2014/04/01 职场文书
质量提升方案
2014/06/16 职场文书
抗洪救灾标语
2014/10/08 职场文书
自主招生自荐信怎么写
2015/03/24 职场文书
征求意见函
2015/06/05 职场文书
python编写函数注意事项总结
2021/03/29 Python