什么是 RESTful API?
RESTful API 也称为 REST API,是遵循 REST 架构规范的应用编程接口(API 或 Web API),支持与 RESTful Web 服务进行交互。REST 是表述性状态传递的英文缩写。
什么是 API?
API 由一组定义和协议组合而成,可用于构建和集成应用软件。有时我们可以把它们当做信息提供者和信息用户之间的合同——建立消费者(呼叫)所需的内容和制作者(响应)要求的内容。例如,天气服务的 API 可指定用户提供邮编,制作者回复的答案由两部分组成,第一部分是最高温度,第二部分是最低温度。
换言之,如果您想与计算机或系统交互以检索信息或执行某项功能,API 可帮助您将您需要的信息传达给该系统,使其能够理解并满足您的请求。
您可以把 API 看做是用户或客户端与他们想要的资源或 Web 服务之间的传递者。它也是企业在共享资源和信息的同时保障安全、控制和身份验证的一种方式,即确定哪些人可以访问什么内容。
API 的另一个优势是您无需了解缓存的具体信息,即如何检索资源或资源来自哪里。
REST 的含义?
REST 是一组架构规范,并非协议或标准。API 开发人员可以采用各种方式实施 REST。
当客户端通过 RESTful API 提出请求时,它会将资源状态表述传递给请求者或终端。该信息或表述通过 HTTP 以下列某种格式传输:JSON(Javascript 对象表示法)、HTML、XLT、Python、PHP 或纯文本。JSON 是最常用的编程语言,尽管它的名字英文原意为“JavaScript 对象表示法”,但它适用于各种语言,并且人和机器都能读。
还有一些需要注意的地方:头和参数在 RESTful API HTTP 请求的 HTTP 方法中也很重要,因为其中包含了请求的元数据、授权、统一资源标识符(URI)、缓存、cookie 等重要标识信息。有请求头和响应头,每个头都有自己的 HTTP 连接信息和状态码。
如何实现 RESTful API?
API 要被视为 RESTful API,必须遵循以下标准:
1.客户端-服务器架构由客户端、服务器和资源组成,并且通过 HTTP 管理请求。
2.无状态客户端-服务器通信,即 get 请求间隔期间,不会存储任何客户端信息,并且每个请求都是独立的,互不关联。
3.可缓存性数据:可简化客户端-服务器交互。
4.组件间的统一接口:使信息以标准形式传输。这要求:
a:所请求的资源可识别并与发送给客户端的表述分离开。
b:客户端可通过接收的表述操作资源,因为表述包含操作所需的充足信息。
c:返回给客户端的自描述消息包含充足的信息,能够指明客户端应该如何处理所收到的信息。
d:超文本/超媒体可用,是指在访问资源后,客户端应能够使用超链接查找其当前可采取的所有其他操作。
组织各种类型服务器(负责安全性、负载平衡等的服务器)的分层系统会参与将请求的信息检索到对客户端不可见的层次结构中。
按需编码(可选):能够根据请求将可执行代码从服务器发送到客户端,从而扩展客户端功能。
虽然 REST API 需要遵循这些标准,但是仍比遵循规定的协议更容易,如 SOAP(简单对象访问协议),该协议具有 XML 消息传递、内置安全性和事务合规性等具体要求,因此速度较慢、结构繁重。
相比之下,REST 则是一组可按需实施的准则,使 REST API 速度更快、更轻,可扩展性更高,非常适合物联网(IoT)和移动应用开发。