from django.contrib import admin from django.urls import path, include from django.conf import settings from django.conf.urls.static import static from rest_framework import permissions from drf_yasg.views import get_schema_view from drf_yasg import openapi #from rest_framework_simplejwt.views import TokenObtainPairView, TokenRefreshView, TokenVerifyView # Вставки из апсов приложения # Машиночитаемая [схема] описывает, какие ресурсы доступны через API schema_view = get_schema_view( openapi.Info( title="vikileo.shop API", default_version='v1', description="vikileo.shop API Documentation", ), public=True, permission_classes=(permissions.AllowAny,), ) # Префикс для понтов, можно без него но сним проще ориентироваться что должно иди на фронт, а что для тестов. api_prefix = 'api' # Кортежи адресов для системных приложений urlpatterns_system = [ path('admin/', admin.site.urls),# Адрес админ панели path('swagger/', schema_view.with_ui('swagger', cache_timeout=0), name='schema-redoc'), # API сборник адресов ] # Кортежи адресов для приложений urlpatterns_apps = [ path('', include('main.urls')), # Адрес главной странице (заглушка) path(f'{api_prefix}/', include('config.accounts.urls')), # Адрес управление учётными данными #path(f'{api_prefix}/', include('system.comments.urls')), # Адрес комментариев от пользователей #path(f'{api_prefix}/', include('todos.urls')), # Адрес статей #path(f'{api_prefix}/', include('articles.urls')), # Адрес стадей для пользователей ] # Кортежи адресов для тестовых приложений urlpatterns_test = [ #path('/accounts/', include('system.accounts.urls')), # Адрес управление учётными данными #path(f'{api_prefix}/token/', obtain_token, name='token_obtain_pair'), #path(f'{api_prefix}/protected/', protected_view, name='protected_view'), path('api-rest/', 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('system.media.urls')), # Адрес файлаобменника ] # Объединение кортежа адресов urlpatterns = urlpatterns_system + urlpatterns_apps + urlpatterns_test # Обслуживание файлов, загруженных пользователем во время разработки if settings.DEBUG: urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)