GET响应中包含URL

时间:2013-10-25 19:09:51

标签: java rest jersey

我们正在实现一个基于REST的GET实现,它将响应有效负载中的多个URI列表返回给客户端。稍后,客户端使用这些URI中的每一个,然后对每个单独的URI执行GET以获取单独的有效负载。只有在POST创建新资源后,才会在Location或Content-Location标头中返回URI。

以下类型的实施是否违反了REST标准?

  **Initial Call** 

  GET /AllURIs
  HTTP 200 OK
  content-type:applicaton/xml
     <URIs>
       <URI> /somelocation/1 </URI>
       <URI> /somelocation/2 </URI>
       <URI> /somelocation/3 </URI>
       <URI> /somelocation/4 </URI>
       <URI> /somelocation/5 </URI>
    <URIs>

     **Later Call**

     GET /somelocation/1
     <NewObject>
      .........
     </NewObject>

2 个答案:

答案 0 :(得分:1)

可以在发布新资源(例如分页)之外的方案中返回URL。

如果您有任何资源的多个相关URL,IMO最好将它们添加到链接头中,而不是在响应有效负载中返回。我们已将此方法用于分页网址,我们在Link Header

中发送了下一个,上一个,第一个和最后一个网址

话虽如此,如果您的REST请求的唯一目的是获取(GET)URL列表,这就是您设计资源的方式,那么在响应正文中也可以使用URL。

答案 1 :(得分:0)

您应该使用绝对URL而不是相对URL。你可以使用你提出的结构 - 没关系,但你也可以考虑使用Atom链接。