Restful协议

2018-11-19  本文已影响0人  Shaw007
REST

Representational State Transfer, 是一种软件架构风格,提供一系列限制指导,用于更好的创建web service
符合REST 架构风格的web service 称为Restful web service。

其核心是以资源为关注点,而不是方法或消息, RESTful通常是用URL定位资源,HTTP动词(GET, POST, DELETE, PUT等) 描述对资源的操作,该操作过程即改变资源的表现形式,可使用JSON, XML等文件传递该资源操作信息。

Level 3.png

Web端主要负责渲染和附带处理简单的商务逻辑,通过Restful API (JSON或其他格式,动词 + 名词)来传递数据和改变数据状态

对比RPC & SOAP

简要对比下RPC & REST & SOA,不同的服务器向客户端提供服务的方法

  1. RPC从一台机器(客户端)上通过参数传递的方式调用另一台机器(服务器)上的一个函数或方法(可以统称为服务)并得到返回的结果。
  2. SOAP 简单对象访问协议,是一种协议,规定以XML格式传输。
  3. REST 针对各Client,提供了一套统一面向资源状态操作的接口规范。

SOAP和REST严格来说不是两个对等的概念,可理解为两种服务设计思想和及其具体的实现架构。

二者各有自己的使用场景。如果创建的分布式服务要求较好的安全性,对于传输等底层实现要求较强的可定制性,可以考虑SOAP;如果要求设计实现简单,一般来说安全性要求不高可以考虑REST。这只是一般情况,但偏于面向资源的服务使用REST有天然的优势。

SOAP在.NET中多使用WCF框架,而RESTful则多使用Web API。
具体可参考Microsoft技术杂志文章

Restful API
REST API.png
GET /products : will return the list of all products
POST /products : will add a product to the collection
GET /products/4 : will retrieve product #4
PATCH/PUT /products/4 : will update product #4
  1. 其中GET和HEAD方法不能设计可对资源状态进行改变
  2. Resource推荐使用复数,其地址推荐使用嵌套结构
  3. 使用正确的HTTP Status Code表示访问状态。
  4. 返回结果使用简明string, 适当注释。

Restful 的好处,无需关注不同的Client等


Restful.png
上一篇下一篇

猜你喜欢

热点阅读