piston-在django中实现REST风格的API

时间:2022-02-12 21:11:41

先说说我对REST的理解,在REST之前,web service的设计方法主流应该是SOAP,我觉得SOAP一定是那些搞C++/C#的人设计出来的,因为SOAP思考问题的着眼点是如何把之前已有的系统搬到web上去。而REST的理念更有方法论的味道,更贴合web应用的实际。

 

关于REST的介绍,推荐下面这篇文章:

http://www.xml.com/pub/a/2004/12/01/restful-web.html

就像文章里说的,为你的web应用设计REST风格的API,只要思考并回答以下4个问题:

  1. What are the URIs?   (everything in your system is resource, and every resource should have a URI)
  2. What's the format?   (how to represent your resource? 1. how to define it 2. return format, xml, json or ...? )
  3. What methods are supported at each URI?   (CRUD)
  4. What status codes could be returned?

那么以上4点,piston基本能帮你搞定2,3,4。除此之外,piston还有的功能:

1. 自定义对每个resource的访问权限。 非常有用!

2. 以Emitters的方式支持多种数据格式(xml,json),用户也可自定义。并可以根据请求参数动态选择

3. 对资源的访问流量控制

piston的文档:

https://bitbucket.org/jespern/django-piston/wiki/Documentation