如何构造RESTAPI XML响应

如何构造RESTAPI XML响应,api,http,rest,Api,Http,Rest,我试图定义如何从web API返回XML内容 web服务器响应的根元素应该始终称为“Content”,还是应该为每个API调用的响应定义(可能)不同的根元素?或者我甚至需要根键吗?我不会尝试自己定义它,而是使用一些标准的东西,比如用Atom或类似的东西包装。正如我在另一篇文章中提到的,对于这种类型的东西(无论您使用JSON还是XML),都有一个固定的根元素。我们维护的API只有一个常量根元素。真的,这取决于你。其他选择可能是每个数据返回类型有不同的根,类有不同的根,或者如您所说,每个函数有不同的

我试图定义如何从web API返回XML内容


web服务器响应的根元素应该始终称为“Content”,还是应该为每个API调用的响应定义(可能)不同的根元素?或者我甚至需要根键吗?

我不会尝试自己定义它,而是使用一些标准的东西,比如用Atom或类似的东西包装。正如我在另一篇文章中提到的,对于这种类型的东西(无论您使用JSON还是XML),都有一个固定的根元素。

我们维护的API只有一个常量根元素。真的,这取决于你。其他选择可能是每个数据返回类型有不同的根,类有不同的根,或者如您所说,每个函数有不同的根

我们的API是这样构造的(不是说它是一个标准或任何东西):


...
我们还允许批处理调用,因此这有助于确定哪些结果是正确的

<product name common root>
<class name>
<function1 return data>...</function1 return data>
</class name>
<class2 name>
<function2 return data>...</function2 return data>
</class2 name>
</product name common root>

...
...

这类问题说明了JSON在数据方面远远优于XML的许多原因之一。你不必说出每件事的名字


建议:只需使用JSON。

请记住,REST是关于传输资源状态表示的。因此,您的回答需要清晰直观地表示资源的状态。如果您有一个“过去30天内下的所有订单”的资源,并且您使用的是XML,那么您的根元素应该类似于
orders
。如果您有一个资源是“最近的发票”,那么您的根元素应该命名为
Invoices
。我不建议对不同类型的资源使用相同的元素名称。
<product name common root>
<class name>
<function1 return data>...</function1 return data>
</class name>
<class2 name>
<function2 return data>...</function2 return data>
</class2 name>
</product name common root>