2013-10-25 78 views
1

我們正在實現一個基於REST的GET實現,它將響應負載中的多個URI的列表返回給客戶端。稍後,客戶端使用這些URI中的每一個,然後在每個單獨的URI上執行GET以獲取單獨的有效負載。只有在通過POST創建新資源之後,纔會在Location或Content-Location標頭中返回URI。GET響應中包含URL

以下是否違反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> 

回答

1

可以在發佈新資源(比如分頁)之外的情況下返回URL。

如果您有多個相關的URL到任何資源,IMO的最佳方式是將它們添加到鏈接標題中,而不是在響應有效內容中返回。我們已經使用這種方法分頁url,我們發送下一個,上一個,第一個和最後一個url作爲Link Header

話雖如此,如果您的REST請求的唯一目的是獲取(GET)URL列表這就是你如何設計你的資源,那麼也可以在響應主體中使用URL。

0

您應該使用絕對URL而不是相對值。你可以使用你建議的結構 - 這是可以的,但你也可以考慮使用Atom鏈接。