Django REST Framework: 如何在API Root页面添加特定API路径
在 Django REST Framework 中,可以使用 router.register() 来添加 viewset,从而将特定的 API 路径添加到 API Root 页面。
例如,假设我们有一个名为 ProductViewSet 的 viewset,想要将 products 这个 API 路径添加到 API Root 页面。
首先,我们可以创建一个自定义的 API Root 视图,并在其中添加 router.register()。代码如下:
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework.reverse import reverse
from rest_framework.routers import DefaultRouter
router = DefaultRouter()
router.register(r'products', ProductViewSet)
class APIRoot(APIView):
def get(self, request):
return Response({
'users': reverse('user-list', request=request),
'products': reverse('product-list', request=request) # 添加 products 路径
})
在 APIRoot 视图中,我们使用 router.register(r'products', ProductViewSet) 注册了 ProductViewSet。这样,products 这个 API 路径就会被添加到 API Root 页面。
需要注意的是,reverse() 函数需要传入一个与 viewset 的 queryset 对应的 URL 模式,例如 product-list。
通过这种方式,即使没有使用 viewset,我们也可以将特定 API 路径添加到 API Root 页面,方便用户快速访问和使用 API。
原文地址: https://www.cveoy.top/t/topic/loY8 著作权归作者所有。请勿转载和采集!