Django REST框架API模式生成,使用相同的URL前缀



我正在使用get_schema_view()方法记录我的Django应用程序,但当我打开Swagger UI时,所有URL都放在同一组下。

我的urls.py看起来像:

router = routers.DefaultRouter()
router.register(r'stores', StoreViewSet)
urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include(router.urls)),
path('api/register/', UserRegistrationView.as_view(), name='register'),
path('api/login/', views.obtain_auth_token, name='login'),
# Documentation
path('openapi/', get_schema_view(
title='Title API',
description='Some description goes here...',
version='v0.1'
), name='openapi-schema'),
path('docs/', TemplateView.as_view(
template_name='documentation.html',
extra_context={'schema_url': 'openapi-schema'}
), name='docs')
]

所有端点都放在Swagger UI中名为api的组下。

如何在生成模式时指定api/前缀,以便按模型对端点进行分组?

谢谢。

我也遇到了同样的问题。简单的解决方案是在设置中定义前缀。

SPECTACULAR_SETTINGS = {
'SCHEMA_PATH_PREFIX': r'/api/v[0-9]',
}

这里回答:使用Django Rest Framework 对OpenAPI端点进行自定义分组

最新更新