返回位置信息的RESTful方法
我已经基于写了一个REST服务器 在某些资源中,返回对象集合而不是单个对象:响应URL“返回位置信息的RESTful方法,rest,location,Rest,Location,我已经基于写了一个REST服务器 在某些资源中,返回对象集合而不是单个对象:响应URL“/users/{user\u id}”的方法返回单个“user”对象,但响应URL“/users”的方法返回所有用户。在前一种情况下,我可以包含一个HTTP头“Content Location:URL”(尽管这是多余的,因为调用者有正确的URL)。在后一种情况下,返回集合中的每个项都有自己的位置。我正在考虑为每个项目添加一个XML属性,指定其位置: <users> <user locat
/users/{user\u id}
”的方法返回单个“user
”对象,但响应URL“/users
”的方法返回所有用户。在前一种情况下,我可以包含一个HTTP头“Content Location:URL
”(尽管这是多余的,因为调用者有正确的URL)。在后一种情况下,返回集合中的每个项都有自己的位置。我正在考虑为每个项目添加一个XML属性,指定其位置:
<users>
<user location="/users/1234">
...
</user>
<user location="/users/5678">
...
</user>
</users>
...
...
是否有一些常规的方法返回此信息?这是设计超媒体API时的一种非常常见的做法。这也是强烈推荐的。没有官方的“正确”的方式来做这件事,但是有一种媒体类型对如何做有非常明确的规则,那就是hal。看 在hal中,您的文档如下所示:
<resource href="/users">
<resource rel="item" href="/users/1234">
...
</resource>
<resource rel="item" href="/users/5678">
...
</resource>
</resource>
...
...
我之所以选择术语“item”,是因为它已经被psuedo标准化了,但是您可以设置自己的链接关系,在确定自己的链接关系时,您只需要遵循一些规则。(详情请参见)阅读Bill Burke的“RESTful Java with JAX-RS”,他描述了如何使用
子元素。@Ralph在本例中rel=“self”对于指向单个用户的链接没有意义,因为“self”是用户的集合。然而,在其他一些基于XML的媒体类型中使用atom:link是一种有效的方法。问题是,还可以使用哪些基于XML的媒体?