Enhance API documentation and schema management by implementing explicit tag configurations for Swagger and ReDoc. Introduce postprocessing hooks to filter auto-generated tags, ensuring only defined tags are used. Update viewsets across various modules to utilize the new tagging system, improving clarity and organization in API documentation.
This commit is contained in:
@@ -7,10 +7,11 @@ from rest_framework.routers import DefaultRouter
|
||||
from rest_framework.views import APIView
|
||||
from rest_framework.response import Response
|
||||
from rest_framework import status, permissions
|
||||
from drf_spectacular.utils import extend_schema
|
||||
from .views import (
|
||||
GroupsViewSet, UsersViewSet, AccountsViewSet, SubscriptionsViewSet,
|
||||
SiteUserAccessViewSet, PlanViewSet, SiteViewSet, SectorViewSet,
|
||||
IndustryViewSet, SeedKeywordViewSet, AuthViewSet
|
||||
IndustryViewSet, SeedKeywordViewSet
|
||||
)
|
||||
from .serializers import RegisterSerializer, LoginSerializer, ChangePasswordSerializer, UserSerializer
|
||||
from .models import User
|
||||
@@ -29,9 +30,14 @@ router.register(r'sites', SiteViewSet, basename='site')
|
||||
router.register(r'sectors', SectorViewSet, basename='sector')
|
||||
router.register(r'industries', IndustryViewSet, basename='industry')
|
||||
router.register(r'seed-keywords', SeedKeywordViewSet, basename='seed-keyword')
|
||||
router.register(r'auth', AuthViewSet, basename='auth')
|
||||
# Note: AuthViewSet removed - using direct APIView endpoints instead (login, register, etc.)
|
||||
|
||||
|
||||
@extend_schema(
|
||||
tags=['Authentication'],
|
||||
summary='User Registration',
|
||||
description='Register a new user account'
|
||||
)
|
||||
class RegisterView(APIView):
|
||||
"""Registration endpoint."""
|
||||
permission_classes = [permissions.AllowAny]
|
||||
@@ -52,6 +58,11 @@ class RegisterView(APIView):
|
||||
}, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
|
||||
@extend_schema(
|
||||
tags=['Authentication'],
|
||||
summary='User Login',
|
||||
description='Authenticate user and receive JWT tokens'
|
||||
)
|
||||
class LoginView(APIView):
|
||||
"""Login endpoint."""
|
||||
permission_classes = [permissions.AllowAny]
|
||||
@@ -123,6 +134,11 @@ class LoginView(APIView):
|
||||
}, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
|
||||
@extend_schema(
|
||||
tags=['Authentication'],
|
||||
summary='Change Password',
|
||||
description='Change user password'
|
||||
)
|
||||
class ChangePasswordView(APIView):
|
||||
"""Change password endpoint."""
|
||||
permission_classes = [permissions.IsAuthenticated]
|
||||
@@ -151,6 +167,11 @@ class ChangePasswordView(APIView):
|
||||
}, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
|
||||
@extend_schema(
|
||||
tags=['Authentication'],
|
||||
summary='Get Current User',
|
||||
description='Get information about the currently authenticated user'
|
||||
)
|
||||
class MeView(APIView):
|
||||
"""Get current user information."""
|
||||
permission_classes = [permissions.IsAuthenticated]
|
||||
|
||||
Reference in New Issue
Block a user