Django RESTful项目中使用Swagger文档生成器

2023-12-0911:36:24WEB前端开发Comments888 views字数 1808阅读模式

什么是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

  1. Swagger可生成一个具有互动性的API控制台,开发者可快速学习和尝试API
  2. Swagger可生成客户端SDK代码,用于不同平台上(Java、Python...)的实现
  3. Swagger文件可在许多不同的平台上从代码注释中自动生成
  4. Swagger有一个强大的社区,里面有许多强悍的贡献者

Djangorestful项目中使用swagger文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/57904.html

安装文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/57904.html

pip 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.html

INSTALLED_APPS = [
    ...
    'rest_framework_swagger',
    ...
]

urls.py添加路由文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/57904.html

from django.conf.urls import urlfrom 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

Django RESTful项目中使用Swagger文档生成器文章源自菜鸟学院-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

Django RESTful项目中使用Swagger文档生成器文章源自菜鸟学院-https://www.cainiaoxueyuan.com/gcs/57904.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/gcs/57904.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定