微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

django-rest-swagger

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效果图:

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐