RESTful Web Services中API的设计原则

REST - Yii 提供了一整套用来简化实现 RESTful 风格的 Web Service 服务的 API

    既然作为一种软件架构风格,那就自然就会有它本身的设计原则,就像iOS、android以及metroUI都有自己的设计规范一样。遵守基本的设计规则可以帮助我们设计出更加简洁易懂、优雅的软件系统。在这个过程中,程序员们都是艺术家,设计着另外一种美。


什么是REST

简单的说,REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。


为什么要Restful?

主要遵循两个准则:

  • 不要为了RESTful而RESTful
  • 在能表达清楚的情况下,简单就是美


RESTful 设计原则:

0: 每个实体对象仅需要两个URL  (响应速度每个对象仅需要两个url,第一个是获取对象的集合,第二个是获取单个对象)

      /books/2   # for Single Object
      /books     # for Collections

1: 使用名词代替动词

/books/2         # Good :)
/getBook?id=2    # Bad :(


2: 正确使用HTTP方法
 GET     # Read
 POST    # Create
 PUT     # Update
 DELETE  # Delete

3:对象间的关联关系

/books/2/author  # book author
/author/1/books  # author's bo

4: 数据分页

/books?start=10&count=20   # return the books from 10 to 30

5: 返回需要的参数

 /books/2?fields=author,isbn,price   # only return the book's author, isbn and price

6: 版本管理

GET   /books/2      # version 1
GET   /v2/books/2   # version 2

REST的优点

  • 可更高效利用缓存来提高响应速度

  • 通讯本身的无状态性可以让不同的服务器的处理一系列请求中的不同请求,提高服务器的扩展性

  • 浏览器即可作为客户端,简化软件需求

  • 相对于其他叠加在HTTP协议之上的机制,REST的软件依赖性更小

  • 不需要额外的资源发现机制

  • 在软件技术演进中的长期的兼容性更好

关于状态

   应该注意区别应用的状态和连接协议的状态。HTTP连接是无状态的(也就是不记录每个连接的信息),而REST传输会包含应用的所有状态信息,因此可以大幅降低对HTTP连接的重复请求资源消耗。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值