一起来学REST(9)——REST设计指导

 原文地址: http://rest.elkstein.org/

Learn REST: A Tutorial

设计REST架构的一些思路如下:

  1. 不要使用“物理”URL。物理URL指向了一个物理位置——例如一个XML文件:“http://www.acme.com/inventory/product003.xml”。逻辑URL并不会隐含文件的物理位置"http://www.acme.com/inventory/product/003".
    • 当然,尽管有xml扩展名,不过可以动态生成内容。但是,对我们来说,其应该是URL是逻辑的,而非物理的。
  2. 查询时不能返回过多的数据,如果需要返回很多数据,提供一种分页机制。例如“产品清单”GET请求应该返回前n个产品(例如前10个),通过前一页/后一页链接来查看其他产品
  3. 尽管REST可以响应任何东西,必须确保其响应的内容是有文档进行详细描述,并且不会改变输出格式(哪怕是进行很小的改变,因为这有可能导致客户端崩溃)
    • 技术,即使其输出是认可读的,你的客户端不是人本身
    • 如果输出是XML,确保你的文档由相对应的Schema或DTD
  4. 并不是让客户端自己构建RSL,例如,“产品清单”请求会返回每个产品的ID,然后通过http://www.acme.com/product/PRODUCT_ID 来访问产品详细信息。这不是一个良好的设计。而是应该在响应中包含每项的实际URL,例如http://www.acme.com/product/001263
    • 对的,这就意味着输出内容会很多,但是也意味着可以更容易的将客户端导向他们所需要的URL,而不需要更改客户端代码。
  5. 通过GET进行请求时,不能改变状态。仅有POST请求(或者其他的HTTP动词,例如DELETE)能改变服务器状态

 

你可能感兴趣的:(xml,schema,REST,url,文档,产品)