我正在设计一个尽可能符合 HATEOAS 原则的 RESTful 服务。因此,我需要一种方法让我的酷 URL 返回描述可用选项的链接列表。我正在使用 HAL-JSON 来简化数据格式,所以这一切都很好,但我现在正在考虑应该使用哪种 HTTP 方法来实现这一点。
我确信我可以坚持使用简单的 GET,但通过阅读 HTTP RFC,似乎 OPTIONS 可能适合这里的账单。我唯一担心的是粗体:
9.2 选项
OPTIONS 方法表示请求有关在由 Request-URI 标识的请求/响应链上可用的通信选项的信息的请求。此方法允许客户端确定与资源相关联的选项和/或要求,或服务器的能力,而无需暗示资源操作或启动资源检索。
对此方法的响应不可缓存。
在网络标准方面有更多经验的人可以解释为什么会这样吗?在我看来,您肯定希望客户端至少在短时间内缓存此结果,因为在完全 HATEOAS 系统中,此调用可能会非常频繁地进行,以遍历 rel 链接以到达您正在查找的操作为了。
我也喜欢关于使用 OPTIONS 与简单的 GET 从一个很酷的 URL 检索操作的一些意见。