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获取指定目录下所有文件名列表的方法
May 20 Python
剖析Python的Tornado框架中session支持的实现代码
Aug 21 Python
微信跳一跳小游戏python脚本
Jan 05 Python
python实现简单登陆系统
Oct 18 Python
python实现事件驱动
Nov 21 Python
django-crontab 定时执行任务方法的实现
Sep 06 Python
Python aiohttp百万并发极限测试实例分析
Oct 26 Python
浅析Python __name__ 是什么
Jul 07 Python
python爬虫用mongodb的理由
Jul 28 Python
详解Python 函数参数的拆解
Sep 02 Python
TensorFlow的环境配置与安装方法
Feb 20 Python
python中pymysql包操作数据库方法
Apr 19 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
dedecms系统的广告设置代码 基础版本
2010/04/09 PHP
php数组函数序列之in_array() 查找数组值是否存在
2011/10/29 PHP
在SAE上搭建最新wordpress的方法
2014/12/21 PHP
PHP编写登录验证码功能 附调用方法
2016/05/19 PHP
yii2缓存Caching基本用法示例
2016/07/18 PHP
老生常谈php 正则中的i,m,s,x,e分别表示什么
2017/03/02 PHP
PHP实现的权重算法示例【可用于游戏根据权限来随机物品】
2019/02/15 PHP
JQuery在光标位置插入内容的实现代码
2010/06/18 Javascript
jQuery 表单验证扩展(四)
2010/10/20 Javascript
基于jquery的当鼠标滚轮到最底端继续加载新数据思路分享(多用于微博、空间、论坛 )
2011/10/10 Javascript
ASP.NET jQuery 实例1(在TextBox里面创建一个默认提示)
2012/01/13 Javascript
js锁屏解屏通过对$.ajax进行封装实现
2014/07/31 Javascript
深入理解javascript变量声明
2014/11/20 Javascript
jQuery实现hover合成事件的方法
2015/08/06 Javascript
js无法获取到html标签的属性的解决方法
2016/07/26 Javascript
微信和qq时间格式模板实例详解
2016/10/21 Javascript
Mui使用jquery并且使用点击跳转新窗口的实例
2017/08/19 jQuery
详解如何去除vue项目中的#——History模式
2017/10/13 Javascript
vue实现组件之间传值功能示例
2018/07/13 Javascript
node将geojson转shp返回给前端的实现方法
2019/05/29 Javascript
vue element-ui读取pdf文件的方法
2019/11/26 Javascript
paramiko模块安装和使用(远程登录服务器)
2014/01/27 Python
django 2.2和mysql使用的常见问题
2019/07/18 Python
postman传递当前时间戳实例详解
2019/09/14 Python
最新2019Pycharm安装教程 亲测
2020/02/28 Python
Python Tornado批量上传图片并显示功能
2020/03/26 Python
Python爬虫HTPP请求方法有哪些
2020/06/03 Python
搞笑征婚广告词
2014/03/17 职场文书
《回乡偶书》教学反思
2014/04/12 职场文书
应聘会计求职信
2014/06/11 职场文书
网络技术专业求职信
2014/07/13 职场文书
法人单位授权委托书范文
2014/10/06 职场文书
政风行风整改报告
2014/11/06 职场文书
灵山大佛导游词
2015/02/04 职场文书
2015年科研工作总结范文
2015/05/13 职场文书
Python使用scapy模块发包收包
2021/05/07 Python