超文本驱动和资源发现
REST 服务的要求之一就是超文本驱动,客户端不再需要将某些接口的 URI 硬编码在代码中,唯一需要存储的只是 API 的 HOST 地址,能够非常有效的降低客户端与服务端之间的耦合,服务端对 URI 的任何改动都不会影响到客户端的稳定。
目前有几种方案试图实现这个效果:
- JSON HAL ,示例可以参考 JSON HAL 作者自己的介绍
- GitHub API 使用的方案 ,应该是一种 JSON HAL 的变体
- JSON API ,(这里有 @迷渡 发起的 中文版 ),另外一种类似 JSON HAL 的方案
- Micro API ,一种试图与 JSON-LD 兼容的方案
目前所知的方案都实现了发现资源的功能,服务端同时需要实现 OPTIONS
方法,并在响应中携带 Allow
头来告知客户端当前拥有的操作权限。