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多线程编程方式分析示例详解
Dec 06 Python
Python实现高效求解素数代码实例
Jun 30 Python
Python序列循环移位的3种方法推荐
Apr 09 Python
和孩子一起学习python之变量命名规则
May 27 Python
Python读写zip压缩文件的方法
Aug 29 Python
对python函数签名的方法详解
Jan 22 Python
PyQt5 窗口切换与自定义对话框的实例
Jun 20 Python
python装饰器使用实例详解
Dec 14 Python
Pycharm中Python环境配置常见问题解析
Jan 16 Python
python中68个内置函数的总结与介绍
Feb 24 Python
Pygame框架实现飞机大战
Aug 07 Python
pycharm远程连接服务器并配置python interpreter的方法
Dec 23 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学习之流程控制实现代码
2011/06/09 PHP
深入解析fsockopen与pfsockopen的区别
2013/07/05 PHP
PHP中使用xmlreader读取xml数据示例
2014/12/29 PHP
PHP+AJAX实现投票功能的方法
2015/09/28 PHP
php 判断过去离现在几年的函数(实例代码)
2016/11/15 PHP
PHP实现对文件锁进行加锁、解锁操作的方法
2017/07/04 PHP
PHP读取CSV大文件导入数据库的实例
2017/07/24 PHP
PHP simplexml_load_file()函数讲解
2019/02/03 PHP
PHP实现随机发扑克牌
2020/04/22 PHP
Yii中特殊行为ActionFilter的使用方法示例
2020/10/18 PHP
JavaScript创建对象的写法
2013/08/29 Javascript
常用jQuery代码分享
2015/07/14 Javascript
Vue2.0实现购物车功能
2017/06/05 Javascript
jQuery实现的电子时钟效果完整示例
2018/04/28 jQuery
vue地址栏直接输入路由无效问题的解决
2018/11/15 Javascript
ES6 迭代器与可迭代对象的实现
2019/02/11 Javascript
JavaScript实现4位随机验证码的生成
2021/01/28 Javascript
[55:56]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
python使用reportlab画图示例(含中文汉字)
2013/12/03 Python
Python浅拷贝与深拷贝用法实例
2015/05/09 Python
整理Python中的赋值运算符
2015/05/13 Python
Python2和Python3中urllib库中urlencode的使用注意事项
2018/11/26 Python
jupyter notebook tensorflow打印device信息实例
2020/04/20 Python
Python Json数据文件操作原理解析
2020/05/09 Python
pytorch cuda上tensor的定义 以及减少cpu的操作详解
2020/06/23 Python
Python虚拟环境的创建和使用详解
2020/09/07 Python
css3 边框、背景、文本效果的实现代码
2018/03/21 HTML / CSS
详解Html5页面实现下载文件(apk、txt等)的三种方式
2018/10/22 HTML / CSS
HTML5开发动态音频图的实现
2020/07/02 HTML / CSS
大学毕业生最详细的自我评价分享
2013/11/18 职场文书
党员岗位承诺口号大全
2014/03/28 职场文书
小学生家长寄语
2014/04/02 职场文书
鼓舞士气的口号
2014/06/16 职场文书
离职证明范本(5篇)
2014/09/19 职场文书
2014年生产管理工作总结
2014/12/23 职场文书
CSS 使用 resize 实现图片拖拽切换预览功能(强大功能)
2021/08/23 HTML / CSS