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实现的生成格雷码功能示例
Jan 24 Python
Python zip()函数用法实例分析
Mar 17 Python
Python使用OpenCV进行标定
May 08 Python
Python切片索引用法示例
May 15 Python
python调用百度语音识别实现大音频文件语音识别功能
Aug 30 Python
使用Python如何测试InnoDB与MyISAM的读写性能
Sep 18 Python
浅谈Python中的bs4基础
Oct 21 Python
python3实现逐字输出的方法
Jan 23 Python
python中yield的用法详解——最简单,最清晰的解释
Apr 04 Python
Python2与Python3的区别实例总结
Apr 17 Python
django 基于中间件实现限制ip频繁访问过程详解
Jul 30 Python
python 字符串常用函数详解
Sep 11 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
《DOTA3》开发工作已经开始 《DOTA3》将代替《DOTA2》
2021/03/06 DOTA
基于PHP一些十分严重的缺陷详解
2013/06/03 PHP
ThinkPHP3.1新特性之对页面压缩输出的支持
2014/06/19 PHP
PHP获取用户访问IP地址的5种方法
2016/05/16 PHP
类似框架的js代码
2006/11/09 Javascript
Textbox控件注册回车事件及触发按钮提交事件具体实现
2013/03/04 Javascript
js判断手机端(Android手机还是iPhone手机)
2015/07/22 Javascript
AngularJS自定义服务与fliter的混合使用
2016/11/24 Javascript
IntersectionObserver实现图片懒加载的示例
2017/09/29 Javascript
微信小程序scroll-view实现字幕滚动
2018/07/14 Javascript
webpack4+express+mongodb+vue实现增删改查的示例
2018/11/08 Javascript
jQuery实现的3D版图片轮播示例【滑动轮播】
2019/01/18 jQuery
ajaxfileupload.js实现上传文件功能
2019/04/19 Javascript
layui select 禁止点击的实现方法
2019/09/05 Javascript
JS动态显示倒计时效果
2019/12/12 Javascript
vue动态渲染svg、添加点击事件的实现
2020/03/13 Javascript
JavaScript实现横版菜单栏
2020/03/17 Javascript
python连接mongodb操作数据示例(mongodb数据库配置类)
2013/12/31 Python
python模拟登陆阿里妈妈生成商品推广链接
2014/04/03 Python
python中的多线程实例教程
2014/08/27 Python
仅用50行代码实现一个Python编写的计算器的教程
2015/04/17 Python
Python计算一个文件里字数的方法
2015/06/15 Python
python中reader的next用法
2018/07/24 Python
PyQt打开保存对话框的方法和使用详解
2019/02/27 Python
Python文件打开方式实例详解【a、a+、r+、w+区别】
2019/03/30 Python
python函数声明和调用定义及原理详解
2019/12/02 Python
Python FtpLib模块应用操作详解
2019/12/12 Python
Python基于爬虫实现全网搜索并下载音乐
2021/02/14 Python
Timberland美国官网:全球领先的户外品牌
2016/08/15 全球购物
澳大利亚设计师服装在线:MISHA
2019/10/07 全球购物
校园文明标语
2014/06/13 职场文书
公司离职证明范本(5篇)
2014/09/17 职场文书
2014财产信托协议书范本
2014/11/18 职场文书
党员个人总结范文
2015/02/14 职场文书
七一慰问简报
2015/07/20 职场文书
win10下go mod配置方式
2021/04/25 Golang