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 中文字符串的处理实现代码
Oct 25 Python
Python的自动化部署模块Fabric的安装及使用指南
Jan 19 Python
浅谈python中的数字类型与处理工具
Aug 02 Python
python中is与双等于号“==”的区别示例详解
Nov 21 Python
python 将print输出的内容保存到txt文件中
Jul 17 Python
pandas的唯一值、值计数以及成员资格的示例
Jul 25 Python
windows 10 设定计划任务自动执行 python 脚本的方法
Sep 11 Python
Python 过滤错误log并导出的实例
Dec 26 Python
Python decorator拦截器代码实例解析
Apr 04 Python
解决Jupyter因卸载重装导致的问题修复
Apr 10 Python
Python爬虫之Spider类用法简单介绍
Aug 04 Python
Python实现迪杰斯特拉算法过程解析
Sep 18 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个人网站架设连环讲(四)
2006/10/09 PHP
php中is_null,empty,isset,unset 的区别详细介绍
2013/04/28 PHP
php中ftp_chdir与ftp_cdup函数用法
2014/11/18 PHP
php制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
php实现银联商务公众号+服务窗支付的示例代码
2019/10/12 PHP
Knockoutjs快速入门(经典)
2012/12/24 Javascript
jquery sortable的拖动方法示例详解
2014/01/16 Javascript
jquery实现弹出层完美居中效果
2014/03/03 Javascript
JavaScript每天定时更换皮肤样式的方法
2015/07/01 Javascript
Jquery 全选反选实例代码
2015/11/19 Javascript
JavaScript类型系统之布尔Boolean类型详解
2016/06/26 Javascript
浅析Javascript ES6中的原生Promise
2016/08/25 Javascript
VueJS全面解析
2016/11/10 Javascript
jquery实现下拉框多选方法介绍
2017/01/03 Javascript
JavaScript错误处理和堆栈追踪详解
2017/04/18 Javascript
深入浅析JSONAPI在PHP中的应用
2017/12/24 Javascript
iview实现select tree树形下拉框的示例代码
2018/12/21 Javascript
this.$toast() 了解一下?
2019/04/18 Javascript
详解babel升级到7.X采坑总结
2019/05/12 Javascript
[04:16]DOTA2全国高校联赛16强抽签
2018/05/02 DOTA
使用cx_freeze把python打包exe示例
2014/01/24 Python
尝试使用Python多线程抓取代理服务器IP地址的示例
2015/11/09 Python
详解Python中的文件操作
2016/08/28 Python
python正则表达式的使用
2017/06/12 Python
python3.6 实现AES加密的示例(pyCryptodome)
2018/01/10 Python
python实现批量解析邮件并下载附件
2018/06/19 Python
python实现俄罗斯方块
2018/06/26 Python
Django之使用celery和NGINX生成静态页面实现性能优化
2019/10/08 Python
Python稀疏矩阵及参数保存代码实现
2020/04/18 Python
django form和field具体方法和属性说明
2020/07/09 Python
英国在线自行车商店:Evans Cycles
2016/09/26 全球购物
国际鲜花速递专家:Floraqueen
2016/11/24 全球购物
捷克体育用品购物网站:D-sport
2017/12/28 全球购物
澳大利亚在线奢侈品时尚零售平台:Azura Runway
2021/01/13 全球购物
购房协议书范本
2014/04/11 职场文书
2014年稽查工作总结
2014/12/20 职场文书