在上一篇文章中,我们了解到 REST API 与 HTTP 请求是如何映射的。接下来,我们继续探索如何把 API 的目标转换成 REST API 。
我们会安装下面四个步骤进行转换:
- 找出资源及其关系
- 分析资源的操作
- 设计资源路径
- 表示为 HTTP 方法
API 目标表格
API 目标表格描述了用户是谁,能做什么,如何做,需要提供什么,获得什么结果,最终形成用户的目标。
为了方便后面的讨论,我们使用自行车目录管理目标表格,进行 API 目标到 REST API 转换的探索。
谁 | 做什么 | 如何做 | 输入 | 输出 | 目标 |
---|---|---|---|---|---|
管理员 | 管理目录 | 添加自行车 | 目录;自行车信息 | 已添加的自行车 | 添加自行车到目录 |
- | - | 获取自行车信息 | 自行车 | 自行车信息 | 获取自行车 |
- | - | 更新自行车信息 | 自行车;更新信息 | 更新自行车 | |
- | - | 删除自行车 | 自行车 | 删除自行车 | |
- | - | 查询自行车 | 目录;关键词 | 在目录中查询自行车 |
资源及其相互关系
首先,列出目标中的名词,发现资源。这些名词通常跟在表示主要操作的动词的后面。在第一节的目标表格中,我们很容易可以找到两个名词:
- 自行车
- 目录
然后,找出资源之间的关系。资源之间的关系,可以是下面三种关系:
- 包含关系。一般是集合与同类个体的关系。
- 所有关系。一般是多个不同类资源组成另一个资源。如,自行车与车轮。
- 没有关系。不是所有资源都存在关系。
在 API 目标表格中,一共有 5 个目标。把自行车资源和目录资源关联到一起的是下面两个目标:
- 添加
自行车
到目录
- 在
目录
中查询自行车
在这里,目录资源就是一个集合,可以包含多个自行车资源(相同类型)。因此,目录和自行车形成了包含关系。
小结
本文完成了从 API 目标到 REST API 转换到第一步:发现资源,并找出他们之间的关系。找出目标中主要操作后面的名词,他们是潜在的资源。资源之间存在三种关系:包含关系,所有关系和没有关系。在下一篇文章中,我们继续分析资源的操作,输入和输出。