From 7f5cd49070caddd561eeb4c816a1e3bb6436e5e4 Mon Sep 17 00:00:00 2001 From: mashen Date: Thu, 9 Apr 2026 13:44:31 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=85=8D=E7=BD=AE=E6=89=80=E6=9C=89=20?= =?UTF-8?q?apps=20=E7=9A=84=20URL=20=E8=B7=AF=E7=94=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - User URLs(用户相关) - Region URLs(版块相关) - Article URLs(文章相关) - FeaturedService URLs(特色服务相关) - Moderation URLs(版主管理相关) - Interaction URLs(交互功能相关) - 更新主 URL 配置,整合所有 API 端点 - 添加 JWT 认证端点 --- backend/apps/articles/urls.py | 10 ++++++++++ backend/apps/featured_services/urls.py | 10 ++++++++++ backend/apps/interactions/urls.py | 18 ++++++++++++++++++ backend/apps/moderation/urls.py | 16 ++++++++++++++++ backend/apps/regions/urls.py | 10 ++++++++++ backend/config/urls.py | 19 +++++++++++++++++++ 6 files changed, 83 insertions(+) create mode 100644 backend/apps/articles/urls.py create mode 100644 backend/apps/featured_services/urls.py create mode 100644 backend/apps/interactions/urls.py create mode 100644 backend/apps/moderation/urls.py create mode 100644 backend/apps/regions/urls.py diff --git a/backend/apps/articles/urls.py b/backend/apps/articles/urls.py new file mode 100644 index 0000000..0f4b9da --- /dev/null +++ b/backend/apps/articles/urls.py @@ -0,0 +1,10 @@ +from django.urls import path, include +from rest_framework.routers import DefaultRouter +from .views import ArticleViewSet + +router = DefaultRouter() +router.register(r'articles', ArticleViewSet, basename='article') + +urlpatterns = [ + path('', include(router.urls)), +] \ No newline at end of file diff --git a/backend/apps/featured_services/urls.py b/backend/apps/featured_services/urls.py new file mode 100644 index 0000000..b63ae8f --- /dev/null +++ b/backend/apps/featured_services/urls.py @@ -0,0 +1,10 @@ +from django.urls import path, include +from rest_framework.routers import DefaultRouter +from .views import FeaturedServiceViewSet + +router = DefaultRouter() +router.register(r'services', FeaturedServiceViewSet, basename='featured_service') + +urlpatterns = [ + path('', include(router.urls)), +] \ No newline at end of file diff --git a/backend/apps/interactions/urls.py b/backend/apps/interactions/urls.py new file mode 100644 index 0000000..a797274 --- /dev/null +++ b/backend/apps/interactions/urls.py @@ -0,0 +1,18 @@ +from django.urls import path, include +from rest_framework.routers import DefaultRouter +from .views import ( + CommentViewSet, + RatingViewSet, + LikeViewSet, + FavoriteViewSet +) + +router = DefaultRouter() +router.register(r'comments', CommentViewSet, basename='comment') +router.register(r'ratings', RatingViewSet, basename='rating') +router.register(r'likes', LikeViewSet, basename='like') +router.register(r'favorites', FavoriteViewSet, basename='favorite') + +urlpatterns = [ + path('', include(router.urls)), +] \ No newline at end of file diff --git a/backend/apps/moderation/urls.py b/backend/apps/moderation/urls.py new file mode 100644 index 0000000..65c1fc0 --- /dev/null +++ b/backend/apps/moderation/urls.py @@ -0,0 +1,16 @@ +from django.urls import path, include +from rest_framework.routers import DefaultRouter +from .views import ( + ModeratorApplicationViewSet, + ModeratorPermissionViewSet, + PermissionRestrictionViewSet +) + +router = DefaultRouter() +router.register(r'applications', ModeratorApplicationViewSet, basename='moderator_application') +router.register(r'permissions', ModeratorPermissionViewSet, basename='moderator_permission') +router.register(r'restrictions', PermissionRestrictionViewSet, basename='permission_restriction') + +urlpatterns = [ + path('moderator/', include(router.urls)), +] \ No newline at end of file diff --git a/backend/apps/regions/urls.py b/backend/apps/regions/urls.py new file mode 100644 index 0000000..a5cdebe --- /dev/null +++ b/backend/apps/regions/urls.py @@ -0,0 +1,10 @@ +from django.urls import path, include +from rest_framework.routers import DefaultRouter +from .views import RegionViewSet + +router = DefaultRouter() +router.register(r'regions', RegionViewSet, basename='region') + +urlpatterns = [ + path('', include(router.urls)), +] \ No newline at end of file diff --git a/backend/config/urls.py b/backend/config/urls.py index fb2e160..0490088 100644 --- a/backend/config/urls.py +++ b/backend/config/urls.py @@ -6,10 +6,29 @@ 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_simplejwt.views import ( + TokenObtainPairView, + TokenRefreshView, +) +from apps.api.views import CustomTokenObtainPairView urlpatterns = [ path('admin/', admin.site.urls), + + # Authentication + path('api/auth/login/', CustomTokenObtainPairView.as_view(), name='token_obtain_pair'), + path('api/auth/token/refresh/', TokenRefreshView.as_view(), name='token_refresh'), + + # API endpoints + path('api/', include('apps.users.urls')), + path('api/', include('apps.regions.urls')), + path('api/', include('apps.articles.urls')), + path('api/', include('apps.featured_services.urls')), + path('api/', include('apps.moderation.urls')), + path('api/', include('apps.interactions.urls')), path('api/', include('apps.api.urls')), + + # GraphQL path('graphql/', include('apps.api.graphql_urls')), ]