Solución:
APIView es la clase más básica que normalmente anula al definir su vista REST. Por lo general, define sus métodos como obtener, poner, eliminar y otros verificar (http://www.cdrf.co/3.5/rest_framework.views/APIView.html). Con APIView usted define su vista y lo agrega a sus 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
Porque ciertas cosas como obtener / post / 4, eliminar / post / 4, obtener todas las publicaciones, actualizar y crear nuevas publicaciones eran tan comunes que DRF proporciona ViewSets.
Pero primero, antes de que conozca los ViewSets, déjeme decirle que también hay clases genéricas que hacen esas cosas muy bien, pero debe proporcionar un punto final de API completo como lo hice con mi vista MyAPIView (nuevamente para obtener más información, consulte http: // www.cdrf.co/ o http://www.django-rest-framework.org/). Así que tendrías que definir tu propia ruta de URL.
Pero con ViewSets creas ViewSet que en realidad fusiona todas las operaciones descritas anteriormente y tampoco necesita definir la ruta de la URL, generalmente usa un enrutador que crea rutas para usted como:
# views.py
class PostViewSet(ViewSet): # here you subclass Viewset check methods you can override, you have also ModelViewSet,...
# urls.py
router = routers.DefaultRouter()
router.register(r'post', PostViewSet, base_name="Post")
Las funciones que agrega a APIView son diferentes de las funciones que agrega a la clase ViewSet.
-
APIVver: agrega funciones para el método HTTP particular que desea admitir en su punto final. Ej: OBTENER, PUBLICAR, PONER, PARCHEAR, ELIMINAR
-
ViewSet: agregaría funciones que representan acciones que realizaría en una API típica. Ej: LISTA, CREAR, RECUPERAR, ACTUALIZAR
APIVver nos permiten definir funciones que coincidan con los métodos HTTP estándar como GET, POST, PUT, PATCH, etc.
Conjuntos de vistas nos permiten definir funciones que coincidan con acciones de objetos de API comunes como: LISTA, CREAR, RECUPERAR, ACTUALIZAR, etc.
Conjuntos de vistas también se utilizan para escribir lógica para realizar operaciones de base de datos estándar y para interactuar con un back-end de base de datos. Y generalmente se utilizan para que el modelo de base de datos existente administre objetos predefinidos.