什么是Swagger文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/57904.html
Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/57904.html
作用文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/57904.html
- 接口文档在线自动生成
- 功能测试
Swagger优势文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/57904.html
- Swagger可生成一个具有互动性的API控制台,开发者可快速学习和尝试API
- Swagger可生成客户端SDK代码,用于不同平台上(Java、Python...)的实现
- Swagger文件可在许多不同的平台上从代码注释中自动生成
- Swagger有一个强大的社区,里面有许多强悍的贡献者
在Djangorestful项目中使用swagger文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/57904.html
安装文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/57904.htmlpip install django-rest-swagger
添加到 Django 设置中。'rest_framework_swagger'INSTALLED_APPS文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/57904.html
settings.py文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/57904.htmlINSTALLED_APPS = [
...
'rest_framework_swagger',
...
]
urls.py添加路由文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/57904.htmlfrom django.conf.urls import url
from rest_framework_swagger.views import get_swagger_view
schema_view = get_swagger_view(title='Pastebin API')
urlpatterns = [
url(r'^$', schema_view)
]
在浏览器中查看文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/57904.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/57904.html
在settings.py添加额外配置项文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/57904.html# swagger 配置项
SWAGGER_SETTINGS = {
# 基础样式
'SECURITY_DEFINITIONS': {
"basic":{
'type': 'basic'
}
},
# 如果需要登录才能够查看接口文档, 登录的链接使用restframework自带的.
'LOGIN_URL': 'rest_framework:login',
'LOGOUT_URL': 'rest_framework:logout',
# 'DOC_EXPANSION': None,
# 'SHOW_REQUEST_HEADERS':True,
# 'USE_SESSION_AUTH': True,
# 'DOC_EXPANSION': 'list',
# 接口文档中方法列表以首字母升序排列
'APIS_SORTER': 'alpha',
# 如果支持json提交, 则接口文档中包含json输入框
'JSON_EDITOR': True,
# 方法列表字母排序
'OPERATIONS_SORTER': 'alpha',
'VALIDATOR_URL': None,
}
高级部分文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/57904.html
Django REST Swagger 包含两个渲染器OpenAPIRenderer和SwaggerUIRenderer。OpenAPIRenderer负责生成 JSON 规范,SwaggerUIRenderer负责UI呈现,即HTML/JS/CSS。要呈现 UI,必须包含两个渲染器。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/57904.html
Swagger模版定制模板文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/57904.html
通过覆盖路径site-packages/rest_framework_swagger/templates/rest_framework_swagger/index.html文件部分代码即可实现页面定制。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/57904.html
可以自定义区域:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/57904.html● {% block extra_styles %}添加其他样式表
● {% block extra_scripts %}添加其他脚本。
● {% block user_context_message %}自定义“你好,用户”消息(仅限 Django 会话)
● {% block extra_nav %}导航栏中其他内容的占位符。
● {% block logo %}导航栏的徽标区域。
出现报错信息:'staticfiles' is not a registered tag library。这是因为在django4.x中关于 {% load staticfiles %} 部分做了修改 ,文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/57904.html
解决方法是使用新语法:{% load static %}文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/57904.html
找到报错的文件位置:site-packages/rest_framework_swagger/templates/rest_framework_swagger/index.html文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/57904.html
用编辑器,将第二行的{% load staticfiles %} 修改为:{% load static %}文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/57904.html
刷新显示正确文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/57904.html
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/57904.html