Django drf-spectacular Как разделить описания api для публичного и частного использования?

Я хочу сделать 2 разных документа. Один для публичного использования с несколькими методами api и без authz. Другой - для частного использования со всеми методами api и только для авторизованных пользователей.

Я разделил свои маршруты на public и private и объявил 2 схемы. Но я не знаю, как я буду фильтровать методы по уровню доступа, а в компонентах есть приватные модели =(

).
public_urlpatterns = [
....
    path("users/current/", CurrentUserView.as_view(), name="api_current_user"), 
....
]
public_urlpatterns += public_api_router.urls

public_urlpatterns += [
    path("schema/", SpectacularAPIView.as_view(urlconf=public_urlpatterns), name="schema"),
    path("redoc/", SpectacularRedocView.as_view(url_name="schema"), name="redoc"),
    path("swagger/", SpectacularSwaggerView.as_view(url_name="schema"), name="swagger-ui",),
]

all_urlpatterns = private_urlpatterns + public_urlpatterns + api_router.urls + public_api_router.urls

urlpatterns = [
    path("api/", include(all_urlpatterns)),
    path("api/schema_private/", login_required(SpectacularAPIView.as_view()), name="schema-private"),
    path(
        "api/swagger_private/",
        login_required(SpectacularSwaggerView.as_view(url_name="schema-private")),
        name="swagger-ui",
    ),
    path("api/redoc_private/", login_required(SpectacularRedocView.as_view(url_name="schema-private")), name="redoc"),
]
Вернуться на верх