2014-10-06 15 views
0

我正在創建一個暴露類似於組成員身份的API。實際上,我有一個GroupMembership資源,它暴露於/groupmembershipREST:引用具有URI或UUID的實體嗎?

現在,當我想創建一個用戶和組之間的新關聯時,我會POST/groupmembership。我很好奇的是我應該如何參考UserGroup資源實例。我是通過URI來做還是通過他們的UUID來做?也就是說,這兩個有效載荷中的哪一個是有效的?

POST /groupmembership 
{ 
    user: "http://localhost:8080/user/abcd-def-ghij", 
    group: "http://localhost:8080/group/1a2-b3c-4d5" 
} 

POST /groupmembership 
{ 
    user: "abcd-def-ghij", 
    group: "1a2-b3c-4d5" 
} 

我使用Spring HATEOAS而據我所知,沒有辦法取消引用鏈接到實體ID,這使得第一種方法有點問題。基本上,給定一個鏈接,我想能夠找出引用實體的UUID。但是我也不想解析URI,因爲它們應該是不透明的。那麼Spring HATEOAS可以這樣做嗎?

第二種方法,我可以簡單地查看它,但我想知道哪種方法更有意義。有一件令我困擾的事情是,第一件事情應該由客戶處理;即它是遵循URI的客戶端。似乎服務器應該只能處理UUID?但另一方面,服務器完全控制了URI的結構,因此它似乎應該知道如何將URI解引用到合適的實體/資源ID。

回答

1

嗨,你不需要有效載荷。通過位置標題發佈創建的Ressource的URL,其狀態代碼爲201.

要回答您的問題,請使用URI。 客戶端不應單獨編寫URI來獲取資源。

+0

謝謝!我認爲這是有道理的,因爲無論如何,URI都應該唯一標識一個資源。 – 2014-10-07 16:35:42

相關問題