我正在使用drf-yasg为Django应用的API生成并提供Swagger JSON模式。在settings.py
中,我创建了SWAGGER_SETTINGS
对象:
SWAGGER_SETTINGS = {
'DEFAULT_INFO': 'CDPtoolsSite.openapi.OPENAPI_INFO'
}
在openapi
模块中,我创建了openapi.Info
可导入对象:
此后,我定义了几个端点来显示带有UI和不带有UI的架构:
from rest_framework import permissions
from drf_yasg.views import get_schema_view
from .openapi import OPENAPI_INFO
schema_view = get_schema_view(
OPENAPI_INFO,
public=True,
permission_classes=(permissions.AllowAny, ),
)
urlpatterns = [
# ...
path(
'swagger.json',
schema_view.without_ui(cache_timeout=0),
name='schema-json'
),
path(
'swagger/',
schema_view.with_ui('swagger', cache_timeout=0),
name='schema-swagger-ui'
),
path(
'redoc/',
schema_view.with_ui('redoc', cache_timeout=0),
name='schema-redoc'
),
]
当我转到/swagger.json
时,路径服务器以YAML
格式返回scheam文件,但是我需要以JSON
生成架构。是否有一些标志返回JSON格式的文件?
我还尝试过手动生成架构文件(保存在静态目录中)并将其提供给单独的端点,但是它没有按我预期的那样工作:
urlpatterns = [
#.....
path(
'api/schema',
RedirectView.as_view(url=static_url('swagger_schema.json')),
'swagger-schema'
),
]
有什么方法可以使drf-yasg
生成JSON格式的服务模式?