rest - 使用 URI 与接受 header 进行 REST 内容格式协商的优缺点是什么?

标签 rest content-negotiation

基于以下问题中的信息 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/

相关文章:

rest - JAX-RS/Jersey 中的 HTTP 内容协商冲突?

json - 是否可以使用 nginx 合并两个 json 响应?

http - 如何在没有提供 Accept header 的情况下在 Spring MVC 中设置默认内容类型?

javascript - HTTP GET 请求 JSON 响应 - REST API

rest - HTTP/Rest 找出服务器上可用的内容类型

java - 休息 API : Using @QueryParam to load data from MongoDB

rest - 从 paypal Rest API 访问我的 paypal 交易列表

spring-mvc - 当客户端发送 Accept : */* 时,文本/html 优先于其他内容类型

c# - JSON.net 的新手,示例代码

javascript - 使用 REST/SOAP/API 从 CIA World FactBook 获取信息?