Django - Отключить аутентификатор для Swagger

Итак, у меня есть приложение Django с Swagger, но я также добавил пользовательский аутентификатор к каждой конечной точке автоматически с

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'cheers.utils.authenticator.CognitoAuthentication',
    ),
}

Как отключить это для swagger? Я не уверен, потому что Swagger добавляется к URL, это не представление

enter image description here

Как отключить автоматическую аутентификацию для swagger?
. Также я думаю, что побочным вопросом будет, как отключить этот URL, когда debug является False

Чтобы отключить аутентификацию | разрешение на swagger-урлы, установите permission_classes в get_schema_view следующим образом :

urls.py

from django.urls import path
from rest_framework import permissions
from rest_framework.schemas import get_schema_view
from django.conf import settings

schema_view = get_schema_view(
    openapi.Info(
        title="Resource API",
        default_version="v1",
        description="A sample API for resource with DRF",
        terms_of_service="https://www.google.com/policies/terms/",
        contact=openapi.Contact(email="your_email@yopmail.com"),
        license=openapi.License(name="BSD License"),
    ),
    public=True,
    permission_classes=(
    permissions.AllowAny, ),  # Anyone have access to API documentation
)

if settings.DEBUG == False
    # urlpatterns
    urlpatterns = [
        # Production urls only
    ]
else:
    urlpatterns = [
        # Production urls + swagger doc urls
        path(
        'doc/',
        schema_view.with_ui('swagger', cache_timeout=0),
        name='schema-swagger-ui'),
    ]

Для администрирования Django без аутентификации следуйте этой записи.

Вернуться на верх