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
Python判断变量是否为Json格式的字符串示例
May 03 Python
Python设计模式之命令模式简单示例
Jan 10 Python
使用Python制作微信跳一跳辅助
Jan 31 Python
wxpython实现图书管理系统
Mar 12 Python
Python实现字典(dict)的迭代操作示例
Jun 05 Python
python利用ffmpeg进行录制屏幕的方法
Jan 10 Python
详解python持久化文件读写
Apr 06 Python
PyCharm2019安装教程及其使用(图文教程)
Sep 29 Python
Python实现点云投影到平面显示
Jan 18 Python
Python爬虫实现HTTP网络请求多种实现方式
Jun 19 Python
解决Pytorch dataloader时报错每个tensor维度不一样的问题
May 28 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
杏林同学录(七)
2006/10/09 PHP
PHP APC缓存配置、使用详解
2014/03/06 PHP
php操作XML、读取数据和写入数据的实现代码
2014/08/15 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
2017/11/14 PHP
jQuery toggle()设置CSS样式
2009/11/05 Javascript
JS 按钮点击触发(兼容IE、火狐)
2013/08/07 Javascript
基于豆瓣API+Angular开发的web App
2015/01/02 Javascript
JS组件Bootstrap按钮组与下拉按钮详解
2016/05/10 Javascript
Angular2  NgModule 模块详解
2016/10/19 Javascript
jQuery中页面返回顶部的方法总结
2016/12/30 Javascript
bootstrap jquery dataTable 异步ajax刷新表格数据的实现方法
2017/02/10 Javascript
Bootstrap禁用响应式布局的实现方法
2017/03/09 Javascript
JavaScript生成图形验证码
2020/08/24 Javascript
Vue使用Clipboard.JS在h5页面中复制内容实例详解
2019/09/03 Javascript
JavaScript实现Excel表格效果
2020/02/07 Javascript
解决vue中axios设置超时(超过5分钟)没反应的问题
2020/09/04 Javascript
[01:04]DOTA2上海特锦赛现场采访 FreeAgain遭众解说围攻
2016/03/25 DOTA
Python中的面向对象编程详解(下)
2015/04/13 Python
Python中pygame的mouse鼠标事件用法实例
2015/11/11 Python
python 专题九 Mysql数据库编程基础知识
2017/03/16 Python
Python编程在flask中模拟进行Restful的CRUD操作
2018/12/28 Python
Python查找最长不包含重复字符的子字符串算法示例
2019/02/13 Python
Python内存映射文件读写方式
2020/04/24 Python
解决Python数据可视化中文部分显示方块问题
2020/05/16 Python
keras 解决加载lstm+crf模型出错的问题
2020/06/10 Python
css3之UI元素状态伪类选择器实例演示
2017/08/11 HTML / CSS
利用CSS3的特性改变文本选中时的颜色
2013/09/11 HTML / CSS
财务管理个人自荐书范文
2013/11/24 职场文书
大四自我鉴定
2014/02/08 职场文书
爱国主义演讲稿
2014/05/07 职场文书
环境科学专业教师求职信
2014/07/12 职场文书
公司感恩节活动策划书
2014/10/11 职场文书
2015年国际护士节演讲稿
2015/03/18 职场文书
2016年秋季运动会广播稿
2015/12/21 职场文书
大学生村官驻村工作心得体会
2016/01/23 职场文书
win10键盘驱动怎么修复?Win10键盘驱动修复小技巧
2022/04/06 数码科技