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 %}
刷新浏览器,重新测试。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话