API 结构
让我们来看一下API的基本结构。
维基百科对**应用程序编程接口(API)**的定义,本质上是规定软件组件如何通过一个公共接口相互交互的规范。虽然还存在其他类型的通信协议,例如SOAP,但本课程中不会涉及这些内容。
在开始构建API之前,我们先来看一下我们将要使用的这类API的基本结构。
数据交换格式
在与他人共享数据时,信息的呈现方式几乎只受限于人类的想象力。计算机之间的数据共享同样遵循这一原则:一台计算机必须将数据转换为另一台计算机能够理解的格式。因此,我们需要为API选择一种特定的数据格式。
Rails可以支持多达35种不同的媒体类型。在这35种格式中,我们将使用JSON。
JSON 是 JavaScript对象表示法(JavaScript Object Notation) 的缩写,它是一种以人类可读形式存储数据对象的文件格式。JSON被广泛接受,具有良好的可读性、可扩展性,并且作为互联网媒体类型标准易于实现。目前许多主流框架默认支持消费JSON格式的API,包括Angular和Vue.js。同时,也存在优秀的Objective-C类库支持,如AFNetworking或RESTKit。
好了,我们已经确定将使用JSON来构建我们的API。接下来需要考虑的是如何实现这一点。一种思路是直接添加路由来定义端点。但这种方法可能存在缺陷,因为这样定义的URI模式可能不够清晰,难以判断暴露的是哪个资源。
API架构
我们将采用的协议是REST,即表述性状态转移(Representational State Transfer)。一个符合REST风格的API至少需要遵循以下三个基本准则:
-
拥有一个基础URI:统一资源标识符(URI)是一串唯一字符,用于标识Web技术所使用的资源,例如 http://example.com/resources/。
-
使用互联网媒体类型来表示数据——通常为JSON——并通过请求头交换进行设置。
-
遵循标准的HTTP方法,如
GET、POST、PUT和DELETE。这些方法的具体含义如下:◦
GET:读取由URI模式定义的资源。◦
POST:在资源集合中创建一个新的条目。◦
PUT:更新资源集合或其中的某个成员。◦
DELETE:删除资源集合或其中的某个成员。

本课的内容可能看起来信息量较大,不易一下子完全消化,但请不必担心!随着课程的推进,这些概念会逐渐变得清晰易懂。