example - django rest framework viewset
¿Diferencia entre la clase APIView y la clase viewsets? (1)
¿Cuál es la diferencia entre la clase APIView y la clase viewsets ? Estoy siguiendo la documentación oficial de Django REST-framework . Creo que le faltan ejemplos.
¿Puedes explicar la diferencia anterior con un ejemplo adecuado?
APIView es la clase más básica que usualmente anulas cuando defines tu vista REST. Por lo general, define sus métodos como get, put, delete y otros check ( http://www.cdrf.co/3.5/rest_framework.views/APIView.html ). Con APIView defines tu vista y la agregas a tus URL así:
#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
Debido a que ciertas cosas como obtener / post / 4, eliminar / publicar / 4, obtener todas las publicaciones, actualizar y crear una nueva publicación eran tan comunes, DRF proporciona Viewsets.
Pero antes de que conozcas los conjuntos de datos, déjame decirte que también hay clases genéricas que hacen esas cosas muy bien, pero debes proporcionar el punto final completo de API como lo hice con mi vista MyAPIView (de nuevo para obtener más información, consulta http: // www.cdrf.co/ o http://www.django-rest-framework.org/ ). Entonces, debería definir su propia ruta de URL.
Pero con ViewSets, creas viewset que realmente fusiona todas las operaciones descritas anteriormente y tampoco necesitas definir la ruta url; usualmente usas un enrutador que crea rutas para ti:
#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'')