У нас есть много приложений и конечных точек, и легче предоставлять определенные конечные точки клиентам через yasg, когда мы работаем с определенными функциями.
В настоящее время я определяю отдельные urlpatterns для swagger в каждом приложении и собираю их из верхних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'),
]
Это работает, но в некоторой степениинтересно, есть ли лучший способ?