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"),
]