可怕的学术式解释
了解了什么是REST,我们再看看RESTful的实现。最近,使用 RPC 样式架构构建的基于 SOAP 的 Web 服务成为实现 SOA 最常用的方法。RPC 样式的 Web 服务客户端将一个装满数据的信封(包括方法和参数信息)通过 HTTP 发送到服务器。服务器打开信封并使用传入参数执行指定的方法。方法的结果打包到一个信封并作为响应发回客户端。客户端收到响应并打开信封。每个对象都有自己独特的方法以及仅公开一个 URI 的 RPC 样式 Web 服务,URI 表示单个端点。它忽略 HTTP 的大部分特性且仅支持 POST 方法。
一头雾水有木有?
REST的定义
直译
- REpresentational State Transfer :表现层状态转移
- 更全的术语:Resource Representational State Transfer(资源在网络中以某种形式进行状态转移)
- Resource(资源):即数据
- Representational(表现形式):比如用JSON,XML,JPEG等
- State Transfer(状态变化):通过HTTP动词实现
大咖描述的REST
- URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作。
牛人给的解释
- REST描述的是在网络中client和server的一种交互形式。REST本身不实用,实用的是如何设计RESTful API(REST风格的网络接口)。
-
Server提供的RESTful API中,URL中只使用名词来指定资源,原则上不使用动词。用HTTP协议里的动词来实现资源的添加,修改,删除等操作。
例如:
- 保证 HEAD 和 GET 方法是安全的,不会对资源状态有所改变(污染,不推荐:GET /deleteProduct?id=1
- 资源的地址推荐用嵌套结构,如:GET /friends/10375923/profile
- 警惕返回结果的大小。如果过大,及时进行分页(pagination)或者加入限制(limit)。HTTP协议支持分页(Pagination)操作,在Header中使用 Link 即可。
- 使用正确的HTTP Status Code表示访问状态
- 在返回结果用明确易懂的文本
- 考虑安全性:尽量使用https
- 为什么要使用RESTful API
- RESTful可以通过一套统一的接口为 Web,iOS和Android提供服务
转载于:https://www.zhihu.com/question/28557115
————
前端·tj
纸上得来终觉浅,绝知此事要躬行