У меня есть проект Django, и я использую Django REST framework. Я использую drf-Spectrum для представления OpenAPI, но я думаю, что моя проблема не связана с этим пакетом, мне это кажется более общим c 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'),
]
В соответствующем представлении пользовательского интерфейса swagger я получаю все конечные точки, сгруппированные под api endpoint , например: введите описание изображения здесь
Если добавить больше конечных точек под v1, все go под конечной точкой api .
Я хочу достичь конечных точек в Swagger сгруппированы по-разному, например, по приложению. Так что у меня было бы home , jwt , another_endpoint вместо api , так что в Swagger ( когда я добавляю больше конечных точек, текущий метод просто показывает массивный список URL-адресов, что не очень удобно для пользователя).
Я читал, что эти группы извлекаются из первого пути URL-адреса в В моем случае это api , поэтому, если я изменю структуру URL, я смогу достичь того, что мне нужно.
Но разве нет другого способа сделать это? Я хочу сохранить свою структуру URL-адресов и настроить ее отображение с помощью OpenAPI, поэтому в итоге у меня есть чванство, которое группирует конечные точки по приложениям, чтобы было легче ориентироваться и находить то, что вы ищете.