Skip to content

Commit

Permalink
Update REST Overview.md
Browse files Browse the repository at this point in the history
  • Loading branch information
waylau committed May 23, 2015
1 parent 7b39c2b commit 639465d
Showing 1 changed file with 7 additions and 7 deletions.
14 changes: 7 additions & 7 deletions docs/REST Overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ REST 是英文 Representational State Transfer 的缩写,有中文翻译为“

* 系统中的每一个对象或是资源都可以通过一个唯一的 URI 来进行寻址,URI 的结构应该简单、可预测且易于理解,比如定义目录结构式的 URI。
* 以遵循 RFC-2616 所定义的协议的方式显式地使用 HTTP 方法,建立创建、检索、更新和删除(CRUD:Create, Retrieve, Update and Delete)操作与 HTTP 方法之间的一对一映射:
* 若要在服务器上创建资源,应该使用 POST 方法;
* 若要检索某个资源,应该使用 GET 方法;
* 若要更改资源状态或对其进行更新,应该使用 PUT 方法;
* 若要删除某个资源,应该使用 DELETE 方法。

URI 所访问的每个资源都可以使用不同的形式加以表示(比如 XML 或者 JSON),具体的表现形式取决于访问资源的客户端,客户端与服务提供者使用一种内容协商的机制(请求头与 MIME 类型)来选择合适的数据格式,最小化彼此之间的数据耦合
* 若要在服务器上创建资源,应该使用 POST 方法;
* 若要检索某个资源,应该使用 GET 方法;
* 若要更改资源状态或对其进行更新,应该使用 PUT 方法;
* 若要删除某个资源,应该使用 DELETE 方法。
* 资源多重表述:URI 所访问的每个资源都可以使用不同的形式加以表示(比如 XML 或者 JSON),具体的表现形式取决于访问资源的客户端,客户端与服务提供者使用一种内容协商的机制(请求头与 MIME 类型)来选择合适的数据格式,最小化彼此之间的数据耦合。
* 无状态:对服务器端的请求应该是无状态的,完整、独立的请求不要求服务器在处理请求时检索任何类型的应用程序上下文或状态。无状态约束使服务器的变化对客户端是不可见的,因为在两次连续的请求中,客户端并不依赖于同一台服务器。一个客户端从某台服务器上收到一份包含链接的文档,当它要做一些处理时,这台服务器宕掉了,可能是硬盘坏掉而被拿去修理,可能是软件需要升级重启——如果这个客户端访问了从这台服务器接收的链接,它不会察觉到后台的服务器已经改变了

<table border="1">
<caption>HTTP 请求方法在RESTful Web 服务中的典型应用</caption>
Expand Down Expand Up @@ -56,4 +56,4 @@ JAX-RS 定义的 API 位于 javax.ws.rs 包中。

在 Java 中,既然 规范的制定者和实现者都是 Sun 公司(现在是 Oracle),那么 Jersey 毫无疑问就是事实上的标准,对于 Java REST 的初学者来说尽量要跟着标准走。当然,所有规范的实现,在用法上基本上没有差别,只是相对来说 Jersey 的实现更全面一些。

本书所有的例子都是基于 Jersey 的,有关 Jersey 的参考,可见《[Jersey 2.x 用户指南](https://github.com/waylau/Jersey-2.x-User-Guide)》。
本书所有的例子都是基于 Jersey 的,有关 Jersey 的参考,可见《[Jersey 2.x 用户指南](https://github.com/waylau/Jersey-2.x-User-Guide)》。

0 comments on commit 639465d

Please sign in to comment.