【发布时间】:2010-10-09 03:00:41
【问题描述】:
这是对要求explanation of REST 的问题的跟进。
正如您从 cmets 和我的回答中看到的那样,我们与 Darrel Miller 就资源的最佳媒体表示进行了小争论。我们进行了进一步的电子邮件讨论,导致了这个问题。
Darrel 和我对 REST 的理解的主要区别在于数据的语义是否是 REST API 的一部分。
Darrel 相信(我对他的话的解释 :-))数据的语义是 REST API 的重要组成部分,因此,选择的媒体表示应该反映它。因此,适当的 REST API 应该选择:
- 像 ATOM 这样的知名媒体来表示数据,以便尽可能多的客户端可以原生地理解资源的语义;
- 特定于应用程序的媒体类型,如 application/vdn.mycomany.mymedia,并希望客户端了解此媒体类型以便能够使用资源数据。 application/xml 不是很好的资源表示,因为它不代表媒体类型中的语义,但需要客户端更多地了解语义。
另一方面,我认为 REST API 是一个独立于实际数据表示的层。 API 暴露的媒体类型只是一个传递资源数据的容器。数据的实际语义是分开处理的。因此,不理解数据的客户端仍然可以使用 REST API。 Application/xml 是一种非常好的数据表示,因为它允许理解架构的客户端紧密耦合,但仍然允许不理解架构的客户端对资源进行一些基本处理。
因此,问题:数据语义是 REST API 的一部分吗?我们是否应该只选择实际上也代表数据语义的资源表示的媒体类型?
如果人们在他们的答案中发布一些引用,我会很感激,最好是来自 Roy 本人。 :-)
【问题讨论】:
标签: rest semantics representation