From 9a6577f71ea512984b07b120925653153f0141d3 Mon Sep 17 00:00:00 2001 From: chunyu <12914@example.com> Date: Fri, 4 Sep 2026 13:44:33 +0800 Subject: [PATCH] fix: unreachable /api/apidirectory/ include (route order), add user & apidirectory index views, include static/ in docker image --- .dockerignore | 1 - apidirectory/urls.py | 1 + apidirectory/views.py | 15 +++++++++++++++ chunyu_project/urls.py | 2 +- user/urls.py | 3 +++ user/views/index.py | 19 +++++++++++++++++++ 6 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 user/views/index.py diff --git a/.dockerignore b/.dockerignore index b622bc5..db5342c 100644 --- a/.dockerignore +++ b/.dockerignore @@ -19,7 +19,6 @@ env/ local_settings.py db.sqlite3 db.sqlite3-journal -static/ media/ # IDE diff --git a/apidirectory/urls.py b/apidirectory/urls.py index d9ee94d..4192b54 100644 --- a/apidirectory/urls.py +++ b/apidirectory/urls.py @@ -4,6 +4,7 @@ from . import views app_name = 'apidirectory' urlpatterns = [ + path('', views.api_directory_index), path('categories/', views.CategoryListView.as_view()), path('items/', views.ApiItemListView.as_view()), path('items//', views.ApiItemDetailView.as_view()), diff --git a/apidirectory/views.py b/apidirectory/views.py index d3b1164..6a6f1b2 100644 --- a/apidirectory/views.py +++ b/apidirectory/views.py @@ -139,3 +139,18 @@ class FavoriteToggleView(APIView): 'favorites_count': favorites_count } }) + + +def api_directory_index(request): + return JsonResponse({ + 'code': 200, + 'message': 'API Directory index', + 'data': { + 'endpoints': { + 'categories': '/api/apidirectory/categories/', + 'items': '/api/apidirectory/items/', + 'item_detail': '/api/apidirectory/items/{id}/', + 'favorite_toggle': '/api/apidirectory/items/{id}/favorite/', + } + } + }) diff --git a/chunyu_project/urls.py b/chunyu_project/urls.py index 390122d..dacef4a 100644 --- a/chunyu_project/urls.py +++ b/chunyu_project/urls.py @@ -65,6 +65,7 @@ urlpatterns = [ path('redoc/', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'), path('test/slider-captcha/', TemplateView.as_view(template_name='test_slider_captcha.html'), name='test-slider-captcha'), path('user/', include('user.urls')), + path('api/apidirectory/', include('apidirectory.urls')), path('api/', include('api.urls')), path('app/', include('app.urls')), path('bug/', include('bug.urls')), @@ -76,7 +77,6 @@ urlpatterns = [ path('tool/', include('tool.urls')), path('search/', include('search.urls')), path('logs/', include('logs.urls')), - path('api/apidirectory/', include('apidirectory.urls')), path('s//', ShortUrlRedirectView.as_view()), ] diff --git a/user/urls.py b/user/urls.py index 7e74e83..0e3f464 100644 --- a/user/urls.py +++ b/user/urls.py @@ -34,7 +34,10 @@ from .views.settings import ( UserDeviceClearOthersView, ) +from .views.index import user_index + urlpatterns = [ + path('', user_index, name='user_index'), path('send-user-email/', SendUserEmailAPIView.as_view(), name='send_user_email'), path('send_user_email/', SendUserEmailAPIView.as_view(), name='send_user_email_old'), path('login-register/', UserLoginOrRegisterAPIView.as_view(), name='user_login_register'), diff --git a/user/views/index.py b/user/views/index.py new file mode 100644 index 0000000..77efa3c --- /dev/null +++ b/user/views/index.py @@ -0,0 +1,19 @@ +from django.http import JsonResponse + + +def user_index(request): + return JsonResponse({ + 'code': 200, + 'message': 'User API index', + 'data': { + 'endpoints': { + 'login': '/user/login/', + 'login_register': '/user/login-register/', + 'profile': '/user/profile/', + 'wallet_balance': '/user/wallet/balance/', + 'public_profile': '/user/public-profile/{user_id}/', + 'favorites': '/user/favorites/', + 'qr_token': '/user/qr-token/', + } + } + })