鉴于 REST-ful Web 服务
/product/{product-id}
返回 Content-Type 的 Product XML 文档
x-esvc/product+xml
我也需要支持
x-esvc/prices+xml
(x-esvc 是自定义 MIME 类型;产品和价格是两个子类型,+xml 暗示它是基于RFC 3023的基于 XML 的格式)
问题是第二种格式是否应该有自己的网络服务
/prices/{product-id}
...或者我是否应该使用内容协商和 Accept HTTP 标头来区分现有产品 Web 服务中的两种格式?
请注意,仅涉及一个真实实体(产品),并且“价格”是 OO 术语中的依赖对象列表。但是,在这两种情况下都可以使用相同的标识符。
表述该问题的另一种方法是“价格”是否可以被视为同一资源的不同表示,或者如果信息不同,是否应该将其视为另一种资源?
我确实知道内容协商通常用于区分同一图像的不同技术格式,例如 JPG 和 PNG。即信息相同但格式不同。在这种情况下,内容协商将用于区分同一实体的不同信息。
这会是 REST-ful Web 服务中对 Content Negotiation 和 Accept HTTP 标头的有效使用吗?