几周前我安装了drf-spectacular
. 一切正常,直到我在 DRF(Django Rest Framework)中启用版本控制。
我实施AcceptHeaderVersioning
并且它工作正常。但后来我意识到 Swagger 没有在 /docs/ 处显示端点,并且显示了这条消息:“规范中没有定义操作!” .
如果我在设置中注释DEFAULT_VERSIONING_CLASS
行REST_FRAMEWORK
,所有端点都会正确显示在 Swagger 文档页面 (/docs/) 中。但是,它破坏了我的版本控制:request.version = None
.
我测试了AcceptHeaderVersioning
, 以及URLPathVersioning
和NamespaceVersioning
。所有这些结果都相同。
我读到这AcceptHeaderVersioning
是一年前实施的。链接到这里的提交。
但我也读到它计划更改modify_for_versioning
功能,它可能会影响标头版本控制。链接到管道模块中的功能,这里和对话这里。事实上,去年对模块进行了很多更改,请查看此处。
这些是我的 DRF 设置:
REST_FRAMEWORK = {
# Auth
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.TokenAuthentication',
],
# Swagger/docs
'DEFAULT_SCHEMA_CLASS': 'drf_spectacular.openapi.AutoSchema',
# Pagination
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
'PAGE_SIZE': 5,
# Testing
'TEST_REQUEST_DEFAULT_FORMAT': 'json',
# Versioning
# https://www.django-rest-framework.org/api-guide/versioning/#configuring-the-versioning-scheme
'DEFAULT_VERSIONING_CLASS': 'rest_framework.versioning.AcceptHeaderVersioning',
'DEFAULT_VERSION': None,
'ALLOWED_VERSIONS': None,
'VERSION_PARAM': 'version',
}
问题
- 知道我做错了什么吗?有什么建议可以让两者一起工作(版本控制和招摇)?有什么建议么?
- 顺便说一句(这是次要问题,不是主要问题):是否可以
drf-spectacular
在我自己的项目中启动测试?
提前致谢!