APIView - это самый базовый класс, который вы обычно переопределяете при определении вида REST. Обычно вы определяете свои методы, такие как get, put, delete и others check (http://www.cdrf.co/3.5/rest_framework.views/APIView.html). С APIView вы определяете вид и добавить их к URL, например, так:
#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
Поскольку некоторые вещи, как получение/должность/4, удаление/запись/4, получать все сообщения, обновление и создание новых пост был настолько распространенным, что DRF предоставляет Viewsets.
Но прежде, чем вы узнаете, что есть варианты Viewsets, позвольте мне сказать вам, что есть и общие классы, что они делают это очень хорошо, но вам нужно предоставить полный конечный пункт API, как и в моем представлении MyAPIView (снова для получения дополнительной информации http://www.cdrf.co/ или http://www.django-rest-framework.org/). Таким образом, вам нужно будет определить свой собственный путь к URL-адресам.
Но с ViewSets вы создаете Viewset, что на самом деле объединяет все описанные выше операции, а также вам не нужно определить путь URL-адрес обычно используется маршрутизатор, который делает путь для вас, как:
#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')