from django.urls import path from rest_framework_simplejwt.views import TokenObtainPairView, TokenRefreshView from .views import ( RegisterView, UserProfileView, LinkViewSet, LinkGroupViewSet, PublicUserGroupsView ) from rest_framework.routers import DefaultRouter from drf_spectacular.views import SpectacularAPIView, SpectacularSwaggerView class NoTrailingSlashRouter(DefaultRouter): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.trailing_slash = '/?' router = NoTrailingSlashRouter() router.register('links', LinkViewSet, basename='link') router.register('groups', LinkGroupViewSet, basename='group') urlpatterns = [ path('auth/register/', RegisterView.as_view(), name='auth_register'), path('auth/register', RegisterView.as_view(), name='auth_register_no_slash'), path('auth/login/', TokenObtainPairView.as_view(), name='token_obtain_pair'), path('auth/login', TokenObtainPairView.as_view(), name='token_obtain_pair_no_slash'), path('auth/refresh/', TokenRefreshView.as_view(), name='token_refresh'), path('auth/refresh', TokenRefreshView.as_view(), name='token_refresh_no_slash'), path('auth/user/', UserProfileView.as_view(), name='user-profile'), # ← новый path('auth/user', UserProfileView.as_view(), name='user-profile-no-slash'), path('users//public/', PublicUserGroupsView.as_view(), name='public-user-groups' ), # схема OpenAPI path('schema/', SpectacularAPIView.as_view(), name='schema'), # Swagger UI, берёт шаблон из drf_spectacular_sidecar path( 'swagger/', SpectacularSwaggerView.as_view(url_name='schema'), name='swagger-ui' ), ] + router.urls