【发布时间】:2020-07-10 08:25:36
【问题描述】:
我有一个 Django 项目,我正在使用 Django REST 框架。我正在使用drf-spectacular 对于 OpenAPI 表示,但我认为我的问题与这个包无关,对我来说这似乎是一个更通用的 OpenAPI 的东西(但不是 100% 确定我是否正确)。
假设我有这样的 URL 结构:
urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include([
path('v1/', include([
path('auth/', include('rest_framework.urls', namespace='rest_framework')),
path('jwt-auth/token/obtain', CustomTokenObtainPairView.as_view(), name='token_obtain_pair'),
path('jwt-auth/token/refresh', CustomTokenRefreshView.as_view(), name='token_refresh'),
path('home/', include("home.urls"))
]))
])),
# OpenAPI endpoints
path('swagger/', SpectacularSwaggerView.as_view(url_name='schema-swagger-json'), name='schema-swagger-ui'),
path('swagger.yaml/', SpectacularAPIView.as_view(), name='schema-swagger-yaml'),
path('swagger.json/', SpectacularJSONAPIView.as_view(), name='schema-swagger-json'),
path('redoc/', SpectacularRedocView.as_view(url_name='schema-swagger-yaml'), name='schema-redoc'),
]
在相应的招摇 UI 视图中,我将所有端点分组在 api 端点下,例如:
如果在 v1 下添加更多的端点,都在 api 端点下。
我想要实现的是,让 Swagger 中的端点以不同的方式分组,例如通过应用程序。所以我会有 home、jwt、another_endpoint,而不仅仅是 api,这样会更容易在 Swagger 中导航(当我添加更多端点时,使用当前方法它只是显示大量 URL 列表,对用户不太友好)。
我读到这些组是从 URL 的第一个路径中提取的,在我的例子中是 api,所以如果我更改 URL 结构,我可以实现我需要的。
但是没有其他方法可以做到这一点吗?我想保留我的 URL 结构,并自定义如何使用 OpenAPI 显示它,所以最后我有一个按应用对端点进行分组的招摇,因此更容易导航和找到您要查找的内容。
【问题讨论】:
标签: django django-rest-framework swagger swagger-ui openapi