GenericAPIView 是 APIView 的延伸,它擁有 APIView的功能,且另外增加一些實用的作用。
在 GenericAPIView 當中沒有的功能,我們亦可以用 Mixins 進行擴充
DRF 內建常用的有以下之 Mixins,各提供不同的功能:
我們可以這樣來使用 GenericAPIView 和 Mixins
class ProductCreateAPIView(mixins.ListModelMixin,
mixins.CreateModelMixin,
generics.GenericAPIView):
queryset = Product.objects.all()
serializer_class =ProductSerializer
def get(self, request, *args, **kwargs):
return self.list(request, *args, **kwargs)
def post(self, request, *args, **kwargs):
return self.create(request, *args, **kwargs)
熟悉 GenericAPIView 和 Mixins 可以讓我們像是積木一樣拼裝出我們需要的功能,常見常使用的功能可以透過這些class 有效率的開發。