五、REST API

2018-02-24  本文已影响0人  mjwz5294

参考:

https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/0014735944539193ab2edd2740f44a79efb438a05e83727000

一、web API

1、如果一个URL返回的不是HTML,而是机器能直接解析的数据,这个URL就可以看成是一个Web API

2、以JSON格式编写的REST风格的API具有简单、易读、易用的特点。

3、通过API操作数据,可以极大地把前端和后端的代码隔离,使得后端代码易于测试,前端代码编写更简单。

4、如果我们把前端页面看作是一种用于展示的客户端,那么API就是为客户端提供数据、操作数据的接口。这种设计可以获得极高的扩展性。例如,当用户需要在手机上购买商品时,只需要开发针对iOS和Android的两个客户端,通过客户端访问API,就可以完成通过浏览器页面提供的功能,而后端代码基本无需改动。

二、REST API 规范:

1、编写REST API,实际上就是编写处理HTTP请求的async函数,不过,REST请求和普通的HTTP请求有几个特殊的地方:

(1)REST请求仍然是标准的HTTP请求,但是,除了GET请求外,POST、PUT等请求的body是JSON数据格式,请求的Content-Type为application/json;

(2)REST响应返回的结果是JSON数据格式,因此,响应的Content-Type也是application/json。

(3)URL需要容易理解

2、其实,使用REST和使用MVC是类似的,不同的是,提供REST的Controller处理函数最后不调用render()去渲染模板,而是把结果直接用JSON序列化返回给客户端。而MVC需要渲染模版,然后返回html给客户端。

3、使用REST虽然非常简单,但是,设计一套合理的REST框架却需要仔细考虑很多问题。

(1)在实际工程中,一个Web应用既有REST,还有MVC,可能还需要集成其他第三方系统。如何组织URL呢?对于较小的工程,一般就是通过固定的前缀区分。

(2)如何规范REST返回的数据?类似MVC中的分层方式,我们也可以添加一个中间层,把公共部分功能集中。

(3)错误处理:这是很常见的问题了。重点就是要客户端能够理解区分,所以错误码的设计和错误信息的返回格式都非常重要。

上一篇下一篇

猜你喜欢

热点阅读