REST APIs 简介

REST API 是一种特殊类型的 API。它们使用 HTTP 作为通信协议,因此可以想象,它们将是网络应用程序使用最多的 API。事实上,它们与你已经建立的网站并无太大区别,因为客户端会发送 HTTP 请求,而服务器会回复 HTTP 响应。不同的是,REST API 大量使用 HTTP 状态代码来了解响应内容,而且响应使用的不是带有 CSS 和 JS 的 HTML 资源,而是 JSON、XML 或其他文档格式,其中只有信息而没有图形用户界面。

让我们举个例子。Twitter API 允许开发人员通过向 https://api. twitter.com/1.1/statuses/user_timeline.json 发送 HTTP GET 请求来获取指定用户的推文。对该请求的响应是一条 HTTP 消息,消息主体是推文的 JSON 地图,状态代码为 200。我们在第 2 章 "使用 PHP 的 Web 应用程序" 中已经提到了状态代码,不过我们很快就会对其进行复习。

REST API 还允许开发人员代表用户发布推文。如果你已经通过了验证,就像上一个例子中那样,你只需向 https://api.twitter.com/1.1/statuses/update.json 发送一个 POST 请求,并在请求正文中加入适当的 POST 参数,比如你想发布的文本。尽管这个请求不是 GET,因此你不是在请求数据,而是在发送数据,但这个请求的响应也相当重要。服务器会使用响应的状态代码让请求者知道,推文是否已成功发布,或者是否无法理解请求、服务器内部出错、认证无效等。上述每种情况都有不同的状态代码,在所有应用程序中都是一样的。这使得与不同的应用程序接口通信变得非常容易,因为你不需要每次都学习新的状态代码列表。服务器还可以在正文中添加一些额外信息,以说明错误发生的原因,但这取决于应用程序。

可以想象,这些 REST API 是提供给开发人员的,以便他们将其与自己的应用程序集成。它们不是用户友好型的,而是 HTTP 友好型的。