好主意还是坏主意,在REST服务的输出中使用xml元素的非确定性排序?

时间:2010-10-01 17:04:26

标签: web-services rest soap soa

Hash.to_xml和其他此类Railsisms可能导致REST服务的输出中的元素排序不同。 XML Elems是顺序敏感的,因此对于JSON或XML属性来说这不是问题。

服务定义最佳实践的哪个方面是这种打破让我认为它是一种气味?

2 个答案:

答案 0 :(得分:1)

考虑REST over HTTP,缓存是一个很大的优势。即使内部在语义上是相同的,如果它在结构上有所不同,那么你最终可能会遇到很多缓存未命中(例如,使用ETags完成)。当然,它取决于“如何”进行比较,但是大多数Cache实现都使用返回有效负载的简单散列作为比较实体。

因此,如果缓存很重要,我倾向于为“语义”相同的文档吐出相同的结构。

答案 1 :(得分:0)

非确定性排序将是我的期望 - 意思是,我不会依赖任何其他东西。

如果您可以为简单的差异提供确定性XML,那就太好了,但是在静态XML中更多,然后在服务响应中。