gpt4 book ai didi

django-rest-framework - drf-yasg,仅查看某些端点的更简单方法?

转载 作者:行者123 更新时间:2023-12-03 22:30:26 26 4
gpt4 key购买 nike

我们有许多应用程序和端点,当我们处理某些功能时,通过 yasg 更容易向客户端公开某些端点。

目前,我正在为每个应用程序中的 swagger 定义单独的 urlpatterns 并从上层 url 聚合它。

在每个应用程序中执行以下操作(选择性地包含端点)

 router_swagger.register(r'user_coupons', UserCouponViewSet)
router_swagger.register(r'coupons', CouponViewSet)

urlpatterns_swagger = [
url(r'^rest_api/', include(router_swagger.urls)),
]

并从其他地方聚合 urlpatterns
swagger_urlpatterns = [                                                                                                                                       
]


from review.urls import urlpatterns_swagger as s1
swagger_urlpatterns += s1
from saleor.promotion.urls import urlpatterns_swagger as s2
swagger_urlpatterns += s2

schema_view = get_schema_view(
openapi.Info(
title="2019_09",
default_version='v1',
),
public=True,
patterns=swagger_urlpatterns,
permission_classes=[permissions.IsAdminUser],
)


urlpatterns += [
url(r'^swagger/$', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),

]

它有效,但有点乏味,想知道是否有更好的方法?

最佳答案

drf-yasg在实现 get_schema_view 时遵循与 DRF( https://www.django-rest-framework.org/api-guide/schemas/ ) 相同的模式.

您可以将 swagger 文件生成移动到一个单独的文件中,并将所有模式导入到该文件中,类似于:

schema_view = get_schema_view(
openapi.Info(
title="API",
default_version="v4",
description="Some endpoints",
contact=openapi.Contact(email="contact@snippets.local"),
license=openapi.License(name="BSD License"),
),
public=True,
patterns=s1+s2+s3
)

urlpatterns += [
url(r'^swagger/$', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),

]

关于django-rest-framework - drf-yasg,仅查看某些端点的更简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58037124/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com