什么是REST?

我想了解一下什么是REST?以及它在网站中的运用~有人能解答一下么?

阅读 6.3k
3 个回答

REST(Representational State Transfer)概念的来源是 Roy Thomas Fielding 的论文
http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
如果不是很好读懂,可以理解为,REST是一种软件架构风格,不是标准。简单来说具有以下特点

  • 资源是由URI来指定。
  • 对资源的 增/删/改/查,分别用HTTP的Method POST/DELETE/PUT/GET 对应;
  • 通过URI操作资源,改变资源状态。

在网站中使用,通常用来作为web service。优点是可以减少网络传输。

假设一个电影库的网站http://www.domainname.com,REST 的 URI 设计为:
电影列表页http://www.domainname.com/movies
某部电影页http://www.domainname.com/movie/123

http://www.domainname.com/movies GET 可获取列表
http://www.domainname.com/movie/123 DELETE 可删除电影

URI设计方面,可以学习douban.com

可以设想REST设计会有这么一个类

class Movie {
  Resource(URI u);
  Response get();
  Response post(Request r);
  Response put(Request r);
  Response delete();
}

REST并不仅仅只是针对HTTP协议,其他对资源操作的协议也可以使用RESTful的风格对外提供服务。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏