Swagger UI接入配置

2023-06-26,,

Swagger UI接入配置

这里的接入我们依赖于DRF官方推荐的一个第三方包: drf-yasg,下面的接入步骤其实都是按照这个第三方库的文档进行配置,这里只是个最最入门的使用,对于更加高阶或者定制化的需求,可以先参考官方文档,后续也会推出基于这个库进行定制化的文章。

其实,drf-yasg的接入是非常简单的,只需要在Django项目下实例化对应的scheme_view,然后添加对应的路由即可:

# django_project_name/urls.py
from drf_yasg import openapi
from drf_yasg.views import get_schema_view schema_view = get_schema_view(
openapi.Info(
title="DRF TOOLS API",
default_version="v1",
),
public=True,
) urlpatterns += [
url(r"^swagger(?P<format>\.json|\.yaml)$", schema_view.without_ui(cache_timeout=0), name="schema-json"),
url(r"^swagger/$", schema_view.with_ui("swagger", cache_timeout=0), name="schema-swagger-ui"),
url(r"^redoc/$", schema_view.with_ui("redoc", cache_timeout=0), name="schema-redoc"),
]

错误处理:

AttributeError: module 'rest_framework.serializers' has no attribute 'NullBooleanField'

通过查询相关资料得知,在djangorestframework版本为3.14.0中,已经将'NullBooleanField'

这个属性删除了,详情可见下方解释
github.com
https://github.com/encode/django-rest-framework/pull/8599

所以若使用3.14.0的DRF涉及以上问题,那就一定会报这个错误!

那既然问题已经找到了那就很好解决啦

我们只要将DRF的版本降低一些就可以啦 本人使用版本为3.13.1

完美解决!!!

Swagger UI接入配置的相关教程结束。

《Swagger UI接入配置.doc》

下载本文的Word格式文档,以方便收藏与打印。