2016-12-29 21 views

Trả lời

7

APIView là lớp cơ bản nhất mà bạn thường ghi đè khi xác định chế độ xem REST của mình. Bạn thường xác định các phương pháp của bạn như get, put, delete và các phương thức khác (http://www.cdrf.co/3.5/rest_framework.views/APIView.html). Với APIView bạn xác định bạn xem và bạn thêm nó vào url của bạn như vậy:

#in views.py 
class MyAPIView(APIView): 
    ... #here you put your logic check methods you can use 
#in urls.py 
url(r'^posts$', MyAPIView.as_view()), #List of all the posts 

Bởi vì những điều nhất định như nhận được/bài/4, xóa/bài/4, nhận được tất cả các bài viết, cập nhật và tạo mới bài đăng rất phổ biến DRF cung cấp Viewsets. Nhưng trước tiên bạn biết Viewsets, hãy để tôi nói với bạn rằng cũng có những lớp chung mà họ làm điều đó rất tốt, nhưng bạn cần cung cấp điểm cuối API đầy đủ như tôi đã làm với chế độ xem MyAPIView của mình (một lần nữa để kiểm tra thêm thông tin http://www.cdrf.co/ hoặc http://www.django-rest-framework.org/). Vì vậy, bạn sẽ phải xác định đường dẫn url của riêng bạn.

Nhưng với ViewSets bạn tạo viewset mà thực sự kết hợp tất cả các hoạt động mô tả ở trên và cũng có thể bạn không cần phải xác định con đường url bạn thường sử dụng một router mà làm cho con đường cho bạn thích:

#views.py 
class PostViewSet(ViewSet): #here you subclass Viwset check methods you can   override, you have also ModelViewSet,... 
# urls.py 
router = routers.DefaultRouter() 
router.register(r'post', PostViewSet, base_name='Post') 
Các vấn đề liên quan