from django.contrib import admin from django.urls import path, include from django.conf import settings from django.conf.urls.static import static from drf_yasg import openapi from drf_yasg.views import get_schema_view from rest_framework import permissions from rest_framework_simplejwt.views import TokenObtainPairView, TokenRefreshView, TokenVerifyView # Машиночитаемая [схема] описывает, какие ресурсы доступны через API schema_view = get_schema_view( openapi.Info( title="??? API", default_version='v1', description="??? API Documentation", ), public=True, permission_classes=(permissions.AllowAny,), ) # Префикс для понтов, можно без него api_prefix = 'api' # Кортеж адресов urlpatterns = [ path('admin/', admin.site.urls),# Адрес админ панели path('swagger/', schema_view.with_ui('swagger', cache_timeout=0), name='schema-redoc'), # API сборник адресов path(f'{api_prefix}/api-auth/', include('rest_framework.urls')), # API rest, допилить виюшку path(f'{api_prefix}/token/', TokenObtainPairView.as_view(), name='token_obtain_pair'), # Присвоение токена path(f'{api_prefix}/token/refresh/', TokenRefreshView.as_view(), name='token_refresh'), # Перевыдача токена path(f'{api_prefix}/token/verify/', TokenVerifyView.as_view(), name='token_verify'), # Верифекация токена path(f'{api_prefix}/', include('todos.urls')), path(f'{api_prefix}/todo/', TodoAPIList.as_view()), ] # Обслуживание файлов, загруженных пользователем во время разработки if settings.DEBUG: urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)