Django中的swagger文档
Swagger UI 是公认的API 文档说明最好的,
只需要花费两分钟就可以配置好,在这里我们使用drf-yasg2
首先需要下载:pip install drf-yasg2
然后需要在setting里配置
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','one','corsheaders','rest_framework','news','django_crontab','drf_yasg2', #<----这里
]
还需要更新urls.py文件
# drf_yasg2 从这里开始
from rest_framework import permissions
from drf_yasg2.views import get_schema_view
from drf_yasg2 import openapi
schema_view = get_schema_view(openapi.Info(title="Tweet API",default_version='v1',description="Welcome to the world of Tweet",terms_of_service="https://www.tweet.org",contact=openapi.Contact(email="demo@tweet.org"),license=openapi.License(name="Awesome IP"),),public=True,permission_classes=(permissions.AllowAny,),
)
# 这里结束
下面路由的配置
from django.contrib import admin
from django.urls import path,include,re_path
from one import url
from news import urls
urlpatterns = [re_path(r'^doc(?P<format>\.json|\.yaml)$',schema_view.without_ui(cache_timeout=0), name='schema-json'), #<-- 这里path('doc/', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'), #<-- 这里path('redoc/', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'), #<-- 这里
]
运行看页面效果
还有一个
之后,我们要在views里用到它
from drf_yasg2.utils import swagger_auto_schema
from drf_yasg2 import openapi
from rest_framework.decorators import action
这里是简单的一个演示
class UpdateGoods(APIView):@swagger_auto_schema(method="post",request_body=openapi.Schema(type=openapi.TYPE_OBJECT,required=['id','name','price'],properties={"id":openapi.Schema(type=openapi.TYPE_INTEGER,description="商品id"),"name":openapi.Schema(type=openapi.TYPE_STRING,description="商品名称"),"price":openapi.Schema(type=openapi.TYPE_INTEGER,description="商品价格"),"lock_stock":openapi.Schema(type=openapi.TYPE_INTEGER,description="锁定库存")}),)@action(methods=['post'],detail=False,)def post(self,request):try:data= request.dataid = data['id']name = data['name']price = data['price']lock_stock = data['lock_stock']Goods.objects.filter(id=id).update(name=name,price=price,lock_stock=lock_stock)return Response({"code":200, "messag":"ok"})except:error = traceback.format_exc()print("error",error)return Response({"code":400,"message":"错误"})
这样我们就可以在页面上进行操作了
测试
希望对大家有所帮助,谢谢!!!
Django中的swagger文档相关推荐
- Django Swagger文档库drf-spectacular
在使用DRF的时候,通常的文档有:默认文档RestFrameWork.CoreAPI.Swagger,Swagger是最流行的API文档库,在绝大多数服务端开发中都有用到,之前我们使用了CoreAPI ...
- 使用 Swagger 文档化和定义 RESTful API
大部分 Web 应用程序都支持 RESTful API,但不同于 SOAP API--REST API 依赖于 HTTP 方法,缺少与 Web 服务描述语言(Web Services Descript ...
- 浅析如何在Nancy中生成API文档
前言 前后端分离,或许是现如今最为流行开发方式,包括UWP.Android和IOS这样的手机客户端都是需要调用后台的API来进行数据的交互. 但是这样对前端开发和APP开发就会面临这样一个问题:如何知 ...
- idea快速生成crud_Java / Spring:如何快速生成完整的Swagger文档CRUD REST API
idea快速生成crud 作为开发人员,我们在日常生活中经常面临的最繁琐的任务之一就是编写良好且易于理解的文档. 无论我们的文档只有几行来解释功能的核心功能,还是表明系统的来龙去脉的成熟文章都没关系. ...
- net core 3.1 swagger文档添加 不用xml配置
使用特性来描述接口而不是xml文件,使用特性可自定义接口在swaggerUI上的描述 安装nuget包:Swashbuckle.AspNetCore.SwaggerUI和Swashbuckle.Asp ...
- swagger 扫描java文档_使用Javadocs生成Swagger文档
我想为现有的一组RESTful API构建Swagger文档.我有以下要求: 读取现有的Javadoc,以便可以在Swagger文档中使用它们. 到目前为止使用上面的插件我能够实现第1点.所以对于现有 ...
- swagger文档配置
swagger文档在springboot项目中使用已经非常广泛,作为api接口管理工具 使用起来也很简单,只需要简单配置一下,就可以生成文档管理页面,在页面上管理查看api接口文档,以及进行接口调试等 ...
- swagger文档增强工具knife4j使用详解
本文从本人博客搬运,原文格式更加美观,可以移步原文阅读:swagger文档增强工具knife4j使用详解 使用原生的swagger作为接口文档,功能不够强大,并且默认的ui比较简陋,不符合大众审美.所 ...
- 设置swagger文档自动同步到YApi
SpringBoot项目引入swagger文档后,每次都要手工维护接口到YApi很麻烦,有没有设置自动化同步的办法?操作如下: 进入YApi后添加项目 添加完项目后,点击设置,配置基本项目信息,由于我 ...
- Swagger 文档中文版,国产API 文档工具使用教程
swagger文档.swagger ui 在后端开发中使用非常广泛,接口文档开发和代码生成等功能非常好用. 但swagger是付费的产品,而免费版的swagger 文档需要自己去配置,流程非常复杂,因 ...
最新文章
- android在Service,BroadCast onReceiver()中弹出Dialog对话框
- 当点击某个链接发送多个请求之后,浏览器显示正在等待localhost响应怎么办(实用)
- phpcms后台进入地址(包含No permission resources错误)
- Java一些八卦集合类
- Qt文档阅读笔记-Threaded Fortune Server Example解析
- UTF-8 Everywhere
- webpack中package-lock.json的作用
- EDA课程设计代码汇总(信号发生器、抢答器、频率计、秒表、密码锁、计算器、VGA、PS2)
- 《从零开始的 RPG 游戏制作教程》第八期:对话、按钮、变量、马甲
- Ramda.js 函数式编程 (==在angular中引入)
- 关于qt 开发的灵异事件
- html脚注如何设置,word2010脚注文本怎么设置
- 计算机原始时代到现在著名的黑客
- android程序设计拍照,Android编程实现拍照功能的2种方法分析
- 关于android4.4沉浸模式的进入和退出时系统栏状态栏遮盖问题,【Android学习】关于Android4.4沉浸模式的进入和退出时系统栏状态栏遮盖问题...
- PHP开源项目——同城跑腿管理系统
- 基于go实现简单的计算自资源监控
- 当前版本与卡刷包android_手机端提取Android 8.x及以上版本卡刷包中的system文件
- 使用命令行进行替换文件
- 群晖上安装MediaWiki的简单记录