1

我有两组 API:内部,用于我们在团队中开发的客户端应用程序,以及外部,由我们的业务合作伙伴使用。我想要一个文档页面,通过身份验证,向我们的开发人员显示内部 API,向所有其他查看者显示外部 API。我怎样才能做到这一点?

我使用:Django、DRF 和 drf-yasg。

PS:我知道这个问题很笼统,但我不知道从哪里开始。我只猜测 get_schema_view 中的一些设置、我的视图和 URL 模式是必需的。

4

1 回答 1

2

可以在函数中设置urlconf参数get_schema_view(...)

from django.urls import path
from rest_framework import permissions
from drf_yasg.views import get_schema_view
from drf_yasg import openapi

schema_view_internal = get_schema_view(
    openapi.Info(
        title="Snippets API",
        default_version='v1',
        description="Test description",
    ),
    public=True,
    permission_classes=(permissions.AllowAny,),
    urlconf="path.to.your.internal_app.urls",
)
schema_view_public = get_schema_view(
    openapi.Info(
        title="Snippets API",
        default_version='v1',
        description="Test description",
    ),
    public=True,
    permission_classes=(permissions.AllowAny,),
    urlconf="path.to.your.public_app.urls",
)

urlpatterns = [
    path(
        'public/swagger/',
        schema_view_public.with_ui('swagger', cache_timeout=0),
        name='schema-swagger-ui-internal'
    ),
    path(
        'internal/swagger/',
        schema_view_internal.with_ui('swagger', cache_timeout=0),
        name='schema-swagger-ui-internal'
    ),
]

或者,您也可以设置patterns参数,它接受URL 模式列表

于 2021-04-29T08:51:56.623 回答