What is a REST API ?
REST 是一种描述网页结构与其他系统架构有何不同的方式。
网页是一种信息网络存在于网络之上,通过浏览器很容易访问。在许多方面都有别于电脑上其他系统结构。
REST是一种架构风格去设计类似网络这样的系统。统一接口的四个规则定义了REST最主要的框架结构。根据定义,REST的API遵循着这四个接口的规则。
规则1:通过资源提供入口
在典型的电脑系统上,客户端与服务器交换指令来操作系统的行为。假设在没有RSET方法中我们想创建一个待办事项的模型,使用技术代码就会变成如下所示:
NOT REST
注意这确实是一个指令:改变一些事情
但是“changeTODOList”并不是一件事,也不是资源
在REST结构风格中,服务端只提供资源。资源是一种客户端与服务端交流而产生的概念性的事物。
REST
上面提到的不是一个指令,而是一个资源的地址,一个东西。
你可以通过这个地址去使用标准运作去操作todo list,从而替代专业接口的指令。
规则2:资源代理
一种资源是一个我们可以使用不同的格式去描述的事物。例如,人们想去看一个HTML版本,你的浏览器就会转变成一种可读性的排版。但是有些时候,网络上的接口也会通过机器来使用。他们需要一个不同的格式,比如JSON。
在非REST方法中:不同的格式有着不同的地址
NOT REST
实现这种功能的方式我们称之为:内容协商
规则3:交换自描述信息
在REST中,我们可以解读任何信息而不会看到上一个信息。
想象一下下面的语句:
NOT REST
第一个请求会寻找到‘todo’的结果,第二个请求会找到第二个页面,现在我们只看第二个请求,你知道作为服务器是要干嘛吗?
REST
注意每一个请求都可以被自身所解读。
其他方面,REST中客户端和服务端只能使用被定义的一个协议来进行标准运作。在WEB中我们称之为HTTP协议。
规则4:通过链接获取资源内容
你怎样才能浏览一个你从见过的网站?使用链接!
你在使用浏览器访问一个新的页面时不必每次都要手动的去填写这个页面的地址。
在机器接口中事实并非如此,加入一个应用需要请求你的todo List,他也许会是以下的表现方式:
NOT REST
现在你能获取到‘items’中list的内容吗?
好问题!我们必须去阅读其中的文档。
在REST中,所有的资源内容都可以通过超链接获取。
REST
现在你不必阅读手册来了解你是如何获取到list中items的内容了。你只要遵循这个链接就可以。
APIs遵循的就是REST的APIs。
在你的接口中只要遵循这4个规则,你就拥有了一个REST的API。
不幸的是,很多以“REST”为标签的接口实际上是其他的东西(HTTP接口),因为他们并没有遵循这四个规则。规则2和规则4经常会被违反,但好的一方面是规则1不常常会被违反。对于这些开发者而言,REST最简单的意思是,我们没有做有关于XML相关的事情。
参考第四条规则后,我们就能明白为什么遵循了这四个规则的REST接口会被经常被称之为“超媒体APIs”的原因了。
文章来源自:www.quora.com,翻译的水平实在是烂,希望能肤浅的理解到REST接口的定义。