【发布时间】:2020-07-13 21:43:24
【问题描述】:
我是 DRF 的新手,所以我想知道是否有一种“优雅”的方式可以向 API Root 添加更多端点。我有一个端点来管理我的用户和另一个端点来管理他们的帖子,但是在 http://localhost:8000/api/ 上只显示配置文件。我搜索了一些暗示更改 URL 的解决方案,但我不希望这样做。例如,我当前获取所有帖子的端点是 localhost:8000/api/posts ,看起来不错。我不想要类似 api/posts/posts 或类似的东西。有没有其他选择?
{
"profiles": "http://localhost:8000/api/profiles/"
}
主 urls.py
urlpatterns = [
path('docs/', schema_view.with_ui('swagger',
cache_timeout=0), name='schema-swagger-ui'),
path('admin/', admin.site.urls),
path('api/', include('profiles.urls')),
path('api/', include('posts.urls')),
path('api/', include('comments.urls')),
path('api/', include('private_messages.urls')),
]
用户配置文件 urls.py
from django.urls import path, include
from rest_framework.routers import DefaultRouter
from rest_framework_simplejwt import views as jwt_views
from .views import UserProfileViewSet
router = DefaultRouter()
router.register('profiles', UserProfileViewSet)
urlpatterns = [
path('', include(router.urls)),
path('auth/login', jwt_views.TokenObtainPairView.as_view()),
path('auth/refresh', jwt_views.TokenRefreshView.as_view()),
]
帖子 urls.py
from django.urls import path, include
from rest_framework.routers import DefaultRouter
from .views import PostViewSet, PostByAuthorViewSet
router = DefaultRouter()
router.register('posts', PostViewSet)
urlpatterns = [
path('posts-by-author/<author_id>', PostByAuthorViewSet.as_view()),
path('', include(router.urls))
]
【问题讨论】:
标签: python django django-rest-framework