Django接入SwaggerAPI接口文档-完整操作(包含错误处理)
Swagger的简介:
Swagger
是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful
风格的Web
服务,在做后端开发的同时自动生成一个API文档供前端查看,当接口有变动时,对应的接口文档也会自动更新。
Swagger的优势:
Swagger生成一个API控制台,开发者可快速管理和获取API接口信息
Swagger的部署步骤:
- 安装依赖;
- 安装swagger;
INSTALLED_APPS 注册;
- url主路由设置;
- runserver启动服务;
- get_link错误处理
- staticfiles错误处理
- 完成
Swagger的依赖:
django-rest-framework,换言之在前后端分离开发的时候,swagger是和drf配合使用的。
Swagger的安装:
pip install django-rest-swagger
Swagger在settings.py中的配置:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'rest_framework_swagger', # swagger自动生成接口文档
]
Swagger在项目主路由urls.py中的配置:
from django.urls import path
# 导入restframework的辅助函数get_schema_view,获取架构视图
from rest_framework.schemas import get_schema_view
# 导入swagger的两个Render类
from rest_framework_swagger.renderers import SwaggerUIRenderer,OpenAPIRenderer
# 利用get_schema_view()方法,传入两个Render类得到一个schema view
schema_view = get_schema_view(title='API',renderer_classes=[SwaggerUIRenderer,OpenAPIRenderer])
# 配置接口文档的访问路径
urlpatterns = [
path('docs/', schema_view, name="swagger")
]
Swagger接口说明:
在接口类视图里面写上注释,可以被当成接口文档说明显示。
Swagger测试:
python manage.py runserver 启动服务,浏览器访问localhost:8001/docs/或者http://127.0.0.1:8001/docs/
。8001为端口,实际测试中以自己的端口为准。
Swagger错误处理:
错误1:'AutoSchema' object has no attribute 'get_link'
解决:REST_FRAMEWORK中添加'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema', # rest_framework_swagger的配置
REST_FRAMEWORK = {
'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema', # rest_framework_swagger的配置}
错误2:'staticfiles' is not a registered tag library. Must be one of:
解决:找到虚拟环境文件夹env/lib/python3.10/site-packages/rest_framework_swagger/templates/rest_framework_swagger/index.html,将第二行的{% load staticfiles %} 修改为:{% load static %}
刷新浏览器,重新测试。
Django接入SwaggerAPI接口文档-完整操作(包含错误处理)的更多相关文章
- django自动生成接口文档
我们在实际项目中,会需要将我们的一些接口的信息返回给前端,便于前后端的交互,在实际使用中,这种自动生成接口文档的模块很多,我主要是用REST framework自动生成接口文档,这个需要用到的是cor ...
- [工具]Swagger-api接口文档描述
摘要 工作中经常的用到webapi,之前都是提供的使用postman模拟请求的截图,非常的不方便,如果能在项目中集成一个在线查看接口说明的地方,肯定更方便更直观.在网上看到swagger这个组件,界面 ...
- Java | Spring Boot Swagger2 集成REST ful API 生成接口文档
Spring Boot Swagger2 集成REST ful API 生成接口文档 原文 简介 由于Spring Boot 的特性,用来开发 REST ful 变得非常容易,并且结合 Swagg ...
- Django使用swagger生成接口文档
参考博客:Django接入Swagger,生成Swagger接口文档-操作解析 Swagger是一个规范和完整的框架,用于生成.描述.调用和可视化RESTful风格的Web服务.总体目标是使客户端和文 ...
- Django框架深入了解_05 (Django中的缓存、Django解决跨域流程(非简单请求,简单请求)、自动生成接口文档)
一.Django中的缓存: 前戏: 在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面. 当一个网站的用户访问量很大的时候,每一 ...
- Django(74)drf-spectacular自动生成接口文档
介绍 drf-spectacular是为Django REST Framework生成合理灵活的OpenAPI 3.0模式.它可以自动帮我们提取接口中的信息,从而形成接口文档,而且内容十分详细,再也不 ...
- Django框架之drf:9、接口文档,coreapi的使用,JWT原理、介绍、快速使用、定制、认证
目录 Django框架之drf 一.接口文档 二.CoreAPI文档生成器 1.使用方法 三.JWT 1.JWT原理及介绍 2.JWP快速使用 3.定制返回格式 4.JTW的认证类 Django框架之 ...
- django接口文档自动生成
django-rest_framework接口文档自动生成 只针对用到序列化和返序列化 一般还是用第三方yipi 一.安装依赖 pip3 install coreapi 二.设置 setting.py ...
- [Django REST framework - 自动生成接口文档、分页]
[Django REST framework - 自动生成接口文档.分页] 自动生成接口文档 # 后端人员写好接口,编写接口文档,给前端人员看,前端人员依照接口文档开发 # 公司里主流 -后端,使用w ...
- django项目中使用swagger来实现接口文档自动生成
一.Swagger 一般我们在对接前后端的时候,都需要提供相应的接口文档.对于后端来说,编写接口文档即费时费力,还会经常因为没有及时更新,导致前端对接时出现实际接口与文档不一致.而且手写接口文档还容易 ...
随机推荐
- webgl 系列 —— 渐变三角形
其他章节请看: webgl 系列 渐变三角形 本文通过一个渐变三角形的示例逐步分析:varying变量.合并缓冲区.图形装配.光栅化.varying 内插 绘制三个点v1 需求:绘制三个相同颜色的点, ...
- ACM需要知道的STL小技巧
天天用stl,但是有一些小技巧如果不知道,偶尔会导致TLE,这里说几个打比赛需要用到的. 主要是大概了解一下其底层原理:https://www.jianshu.com/p/834cc223bb57 就 ...
- 顺应潮流,解放双手,让ChatGPT不废话直接帮忙编写可融入业务可运行的程序代码(Python3.10实现)
众所周知,ChatGPT可以帮助研发人员编写或者Debug程序代码,但是在执行过程中,ChatGPT会将程序代码的一些相关文字解释和代码段混合着返回,如此,研发人员还需要自己进行编辑和粘贴操作,效率上 ...
- MySQL查询练习 (转载)
转载 @香草味的橙子 侵删 Evernote Export body, td { font-family: 微软雅黑; font-size: 10pt } mysql查询练习 新建一个查询用的数据库: ...
- Unity Joint用法及案例
目录 什么是Joint 有哪些Joint Joint计算原理 自由度配置 Axis与Anchor Limit与Spring Drive与Target Joint应用案例 车轮 旋转 悬挂系统 吊臂 旋 ...
- Spring Data Redis 框架
系统性学习,移步IT-BLOG 一.简介 对于类似于首页这种每天都有大量的人访问,对数据库造成很大的压力,严重时可能导致瘫痪.解决方法:一种是数据缓存.一种是网页静态化.今天就讨论数据缓存的实现 Re ...
- 股票数据定向爬虫.py(亲测有效)
import requests from bs4 import BeautifulSoup import traceback import re def getHTMLText(url,code='u ...
- Unity3D中的Attribute详解(三)
上一篇我们对系统的Attributes进行了MSIL代码的查看,了解到了其本质就是一个类的构造函数.本章我们将编写自己的Attributes. 首先我们定义书的属性代码,如下: [AttributeU ...
- R语言数据加工厂——plyr包使用
plyr包是Hadley Wickham大神为解决split – apply – combine问题而写的一个包,其动机在与提供超越for循环和内置的apply函数族的一个一揽子解决方案.使用plyr ...
- flak_login用法
基础的信息和全局配置这里就不多说,需要用到再斟酌也可以的.这里也是针对每个模块较为常用的进行解释说明,后期再使用过程中遇到会进行补充. Login_Manager LoginManager是一个类,有 ...