4

基于以下问题REST Content-Type: 它应该基于扩展还是接受标头中的信息?,我知道自定义 URI 或指定 Accept Headers 是 REST-ish Web 服务确定客户端响应格式的“可接受”(双关语)方法。

但是,很多大牌似乎都在他们的 API 中使用了自定义 URI 方法。一种方式相对于另一种方式的优势是什么?

4

1 回答 1

3

在 REST 中,URI 仅用于标识资源。内容协商用于识别表示格式。这是您传统的关注点分离。当使用 URI 来识别表示格式时,您会混淆这些问题。

除了混合问题之外,我的观察是,当使用基于 URI 的方法时,人们通常知道约定并依赖 URI 构建而不是超文本来导航。如果服务器想要更改 URI 结构,这会增加耦合并可能导致问题。

话虽如此,URI 方法也有一些积极的方面,即便利性。在开发过程中,您可以启动浏览器并轻松查看服务器响应的内容,只需在地址栏中输入(“example.com/foo.json”)即可。当 100% 依赖于内容协商时,它有点困难,你必须依赖插件或 cURL,任何可以操纵标题的东西。

于 2011-06-04T03:30:46.730 回答