Swagger是一个API开发者的工具框架,用于生成、描述、调用和可视化RESTful风格的Web服务。总体目标是使客户端和文件系统服务器以同样的速度来更新,方法,参数和模型紧密集成到服务器端的代码中,允许API始终保持同步。
在使用 django-rest-framework 进行API开发,可以使用django-rest-swagger接入swagger自动生成接口文档。
1:安装django-rest-swagger
pip3 install django-rest-swagger
2:配置settings.py
INSTALLED_APPS = [
...
'rest_framework_swagger',
...
]
3:配置urls.py
from django.contrib import admin
from django.urls import path
from rest_framework_swagger.views import get_swagger_view
schema_view = get_swagger_view(title='API')
urlpatterns = [
path('admin/', admin.site.urls),
path('doc/', schema_view)
]
4:运行python3 manage.py runserver
5:浏览器访问 http://127.0.0.1:8000/doc/
此时出现报错信息:'AutoSchema' object has no attribute 'get_link'
这是因为使用模块的版本问题,我们需要在setting中添加设置:
REST_FRAMEWORK = {
'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.coreapi.AutoSchema'
}
6:再次刷新 http://127.0.0.1:8000/doc/
继续出现报错信息:'staticfiles' is not a registered tag library
这是因为在django4.x中关于 {% load staticfiles %} 部分做了修改 ,
解决方法是使用新语法:{% load static %}
找到报错的文件位置:
/.local/lib/python3.10/site-packages/rest_framework_swagger/templates/rest_framework_swagger/index.html
用编辑器,将第二行的{% load staticfiles %} 修改为:{% load static %}
7:再次刷新 http://127.0.0.1:8000/doc/,成功出现如下Swagger效果图:
标签:load,rest,django,framework,API,swagger From: https://www.cnblogs.com/beichengshiqiao/p/17058953.html