drf-yasg, более простой способ увидеть только определенные конечные точки? - PullRequest
0 голосов
/ 21 сентября 2019

У нас есть много приложений и конечных точек, и легче предоставлять определенные конечные точки клиентам через 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'),

]

Это работает, но в некоторой степениинтересно, есть ли лучший способ?

...