RESTful 资源设计与操作实践
1. 资源连接性的重要性
在资源交互中,客户端理论上可以根据规则生成 URI,但这些规则往往涉及复杂的地理知识,如经纬度的计算、地图缩放比例以及地球的大小和形状等。相比之下,通过跟随链接来导航地图要比计算图块坐标容易得多。这表明,当资源之间的关系变得过于复杂,无法用简单规则表达时,资源之间的连接性就显得尤为重要。
1.1 Google Maps 的启发
Google Maps 的基于图块的导航系统采用任意的 X 和 Y 坐标来定位图块,而不是经纬度。这样,找到北方的图块通常只需将 Y 值减 1,图块之间的关系变得简单。这提示我们,如果经纬度计算导致必须随每个地图表示发送导航链接,或许应该重新考虑策略,提供更简单的 URI,方便客户端生成。
1.2 连接性应对关系变化
连接性的另一个重要价值在于,它使客户端能够处理随时间变化的资源关系。链接不仅隐藏了为给定资源构建 URI 的规则,还体现了资源之间的关联规则。例如,当地图数据更新,比例尺发生变化时,使用经纬度生成 URI 的客户端可能会出现问题,而跟随导航链接的客户端则能自动适应新的地图比例尺。
因此,期望客户端使用规则构建初始 URI 是可行的,但当需要从一个 URI 导航到另一个 URI 时,应该提供适当的链接。随着可编程网络的发展,连接性将变得越来越重要。
2. 资源设计
服务所暴露的每个“事物”都需要一个资源。资源的概念很宽泛,任何想要暴露的数据或算法都可以成为资源。主要有以下三种类型的资源:
| 资源类型 | 描述 | 示例 |
| ---- | ----
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



