58 lines
3.3 KiB
Python
58 lines
3.3 KiB
Python
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 сборник адресов
|
||
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'), # Верифекация токена
|
||
]
|
||
""" Кортежи адресов для приложений """
|
||
urlpatterns_apps = [
|
||
path(f'{api_prefix}/', include('config.accounts.urls')), # Адрес управление учётными данными
|
||
path(f'{api_prefix}/', include('system.comments.urls')), # Адрес комментариев от пользователей
|
||
path('', include('main.urls')), # Адрес главной странице (заглушка)
|
||
path('', include('config.accounts.urls')), # Адрес управление учётными данными
|
||
|
||
]
|
||
""" Кортежи адресов для тестовых приложений """
|
||
urlpatterns_test = [
|
||
#path(f'{api_prefix}/', include('system.media.urls')), # Адрес файлаобменника
|
||
#path(f'{api_prefix}/', include('todos.urls')), # Адрес задач админов
|
||
#path(f'{api_prefix}/', include('articles.urls')), # Адрес стадей для пользователей
|
||
#path(f'{api_prefix}/token/', obtain_token, name='token_obtain_pair'),
|
||
#path(f'{api_prefix}/protected/', protected_view, name='protected_view'),
|
||
]
|
||
""" Объединение кортежа адресов """
|
||
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)
|
||
|
||
|
||
|