基于以下问题中的信息 REST Content-Type: Should it be based on extension or Accept header? ,我知道自定义 URI 或指定接受 header 是 REST 式 Web 服务确定客户端响应格式的“可接受”(双关语)方法。
然而,很多大牌似乎在他们的 API 中使用自定义 URI 方法。一种方式相对于另一种方式的优势是什么?
最佳答案
在 REST 中,URI 仅用于标识资源。内容协商用于识别表示格式。这是您传统的关注点分离。当使用 URI 来标识表示格式时,您正在混合这些问题。
除了混合问题之外,我的观察是,当使用基于 URI 的方法时,人们通常知道约定并依赖 URI 构建而不是超文本来导航。如果服务器想要更改 URI 结构,这会增加耦合并可能导致问题。
话虽如此,URI 方法有一些优点,即方便。在开发过程中,您可以启动浏览器,只需在地址栏 ('example.com/foo.json') 中输入即可轻松查看服务器响应的内容。当 100% 依赖于内容协商时,它有点困难,你必须依赖插件或 cURL,任何可以操纵标题的东西。
关于rest - 使用 URI 与接受 header 进行 REST 内容格式协商的优缺点是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6229503/