35 lines
1.9 KiB
Python
35 lines
1.9 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 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) |