Python自动化开发学习-RESTful API
RESTful API
RESTful API 是一种面向资源编程,也叫表征状态转移(英文:Representational State Transfer,简称REST)。
认为网络上所有的东西都是资源,对资源的操作无非就是增删改查。
传统的方法
比如有个资产的页面,URL是 www.example.com/asset
。要对它进行增删改查,可能使用不同的url来区分:
www.example.com/addAsset
:增加资产,一般是POST方法。www.example.com/delAsset
:删除资产,一般是POST方法。www.example.com/editAsset
:修改资产,一般是POST方法。www.example.com/showAsset
:显示资产,一般是GET方法。也可能使用www.example.com/asset
作为url
这里的url一般使用的都是动词,表示是一个动作。
RESTful API 的规则
RESTful API 用一个url代指一个资源,既然是资源,这个词要用名词。那么这个url就是 www.example.com/asset
。增删改查都是通过这个url实现的,通过不同的method实现不同的方法,常用的是下面几个方法:
GET(SELECT):从服务器取出资源(一项或多项)。
POST(CREATE):在服务器新建一个资源。
PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。
DELETE(DELETE):从服务器删除资源。
在django中,推荐使用CBV。当然FBV也不是不行。
RESTful API 设计指南
这篇貌似讲的很好,值得参考:http://www.ruanyifeng.com/blog/2014/05/restful_api.html
JsonResponse
使用API就会有很多序列化数据返回的操作。
之前当我们需要给前端返回序列化后的字符串时,往往都是先调用json.dumps()这个方法,然后再用HttpResponse()把字符串返回给前端。既然每次都要这么搞,于是django给我么封装了一个新方法,直接完成序列化和返回字符串。
JsonResponse这个类是HttpRespon的子类,通过它直接就可以把字典进行序列化并返回给前端。
>>> from django.http import JsonResponse>>> response = JsonResponse({'foo': 'bar'})>>> response.content'{"foo": "bar"}'
默认只能传入一个字典,并且API要返回的数据应该也就是字典。但是如果一定要序列化一个其他的类型,比如列表,可以设置safe参数:
>>> response = JsonResponse([1, 2, 3], safe=False)
如果要自定义编码器,和json方法一样,通过下面的参数指定:
>>> response = JsonResponse(data, encoder=MyJSONEncoder)
本文转自骑士救兵博客51CTO博客,如需转载,请自行联系原作者。
- 点赞
- 收藏
- 关注作者
评论(0)