咨询电话:15629116585(9:00-21:00)咨询QQ:272876 交流QQ群:87780123
微信

关注我们
在线咨询购买 | 注册 | 登录

武汉灵犀教育

RESTful 风格的微服务接口 - 武汉灵犀教育

News center
资讯中心

资讯中心当前位置:首页>>资讯详情

RESTful 风格的微服务接口
发布:武汉灵犀教育发布时间:2019-06-25

什么是RESTful风格?

REST REpresentational State Transfer的缩写(一般中文翻译为表述性状态转移)。

REST 是一种体系结构,而 HTTP 是一种包含了 REST 架构属性的协议。

为了便于理解,我们把它的首字母拆分成不同的几个部分:

表述性(REpresentational) REST 资源实际上可以用各种形式来进行表述,包括 XML、JSON 甚至 HTML——最适合资源使用者的任意形式;

状态(State): 当使用 REST 的时候,我们更关注资源的状态而不是对资源采取的行为;

转义(Transfer) REST 涉及到转移资源数据,它以某种表述性形式从一个应用转移到另一个应用。


简单地说,REST 就是将资源的状态,以适合客户端或服务端的形式从服务端转移到客户端(或者反过来)

在 REST 中,资源通过 URL 进行识别和定位,然后通过行为(即 HTTP 方法)来定义 REST 来完成功能。

举例说明:

Web 开发中,method 常用的值是 GET 和 POST,但是实际上,HTTP 方法还有 PATCH、DELETE、PUT 等其他值,

这些方法又通常会匹配为如下的 CRUD 动作:



通常来讲,HTTP 方法会映射为 CRUD 动作,但这并不是严格的限制,有时候 PUT 也可以用来创建新的资源,POST 也可以用来更新资源。

实际上,POST 请求非幂等的特性(即同一个 URL 可以得到不同的结果)使其成一个非常灵活地方法,对于无法适应其他 HTTP 方法语义的操作,它都能够胜任。


使用 RESTful 风格之前,如果想要增加一条商品数据通常是这样的:

/addCategory?name=xxx

但是使用了 RESTful 风格之后就会变成:

/category


这样变成了使用同一个 URL ,通过约定不同的 HTTP 方法来实施不同的业务,这就是 RESTful 风格。

为了有一个更加直观的理解,见下图:



RESTful API 具体设计:


由此可见,RESTful 是一种软件架构风格、设计风格,而不是标准,提供了一组设计原则和约束条件,

基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。