APIview
```APIView```是```REST framework```提供的所有视图的基类,继承自```Django```的```View```父类。
```APIView```与```View```的不同之处在于:
- 入到视图方法中的是REST framework的Request对象,而不是Django的HttpRequeset对象;
- 视图方法可以返回REST framework的Response对象,视图会为响应数据设置(render)符合前端要求的格式;
- 任何APIException异常都会被捕获到,并且处理成合适的响应信息;
- 在进行dispatch()分发前,会对请求进行身份认证、权限检查、流量控制。
####支持定义的属性:
- authentication_classes 列表或元祖,身份认证类
- permissoin_classes 列表或元祖,权限检查类
- throttle_classes 列表或元祖,流量控制类
在APIView中仍以常规的类视图定义方法来实现```get()``` 、```post()``` 或者其他请求方式的方法。
from rest_framework.views import APIView from rest_framework.response import Response
url(r'^books/$', views.BookListView.as_view()),
class BookListView(APIView): def get(self, request): books = BookInfo.objects.all() serializer = BookInfoSerializer(books, many=True) return Response(serializer.data) ```