内部和外部 API 的单独文档 (drf_yasg)
Separate documentations for internal and external APIs (drf_yasg)
我有两组 API:内部 API,用于我们团队开发的客户端应用程序,以及外部 API,供我们的业务合作伙伴使用。我想要一个通过身份验证的文档页面,向我们的开发人员显示内部 API,并向其他所有查看者显示外部 API。我该怎么做?
我使用:Django、DRF 和 drf-yasg。
P.S: 我知道这个问题很笼统,但我不知道从哪里开始。我只是猜测需要 get_schema_view、我的观点和 URL 模式中的一些设置。
可以在get_schema_view(...)
函数中设置urlconf
参数
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,),
<b>urlconf="path.to.your.internal_app.urls",</b>
)
schema_view_public = get_schema_view(
openapi.Info(
title="Snippets API",
default_version='v1',
description="Test description",
),
public=True,
permission_classes=(permissions.AllowAny,),
<b>urlconf="path.to.your.public_app.urls",</b>
)
urlpatterns = [
path(
'public/swagger/',
<b>schema_view_public</b>.with_ui('swagger', cache_timeout=0),
name='schema-swagger-ui-internal'
),
path(
'internal/swagger/',
<b>schema_view_internal</b>.with_ui('swagger', cache_timeout=0),
name='schema-swagger-ui-internal'
),
]
或者,您也可以设置 patterns
参数,它接受 URL 模式列表
我有两组 API:内部 API,用于我们团队开发的客户端应用程序,以及外部 API,供我们的业务合作伙伴使用。我想要一个通过身份验证的文档页面,向我们的开发人员显示内部 API,并向其他所有查看者显示外部 API。我该怎么做?
我使用:Django、DRF 和 drf-yasg。
P.S: 我知道这个问题很笼统,但我不知道从哪里开始。我只是猜测需要 get_schema_view、我的观点和 URL 模式中的一些设置。
可以在get_schema_view(...)
函数中设置urlconf
参数
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,),
<b>urlconf="path.to.your.internal_app.urls",</b>
)
schema_view_public = get_schema_view(
openapi.Info(
title="Snippets API",
default_version='v1',
description="Test description",
),
public=True,
permission_classes=(permissions.AllowAny,),
<b>urlconf="path.to.your.public_app.urls",</b>
)
urlpatterns = [
path(
'public/swagger/',
<b>schema_view_public</b>.with_ui('swagger', cache_timeout=0),
name='schema-swagger-ui-internal'
),
path(
'internal/swagger/',
<b>schema_view_internal</b>.with_ui('swagger', cache_timeout=0),
name='schema-swagger-ui-internal'
),
]
或者,您也可以设置 patterns
参数,它接受 URL 模式列表