命名一個端點以創建最佳實踐的「草稿」版本的資源時?REST風格的API設計,命名起草端點
POST >>/posts
{
title: 'My Post',
body: 'The content of my post',
status: 'DRAFT',
}
或者是更好的:
POST >>/posts/drafts
{
title: 'My Post',
body: 'The content of my post',
}
命名一個端點以創建最佳實踐的「草稿」版本的資源時?REST風格的API設計,命名起草端點
POST >>/posts
{
title: 'My Post',
body: 'The content of my post',
status: 'DRAFT',
}
或者是更好的:
POST >>/posts/drafts
{
title: 'My Post',
body: 'The content of my post',
}
從我上有效載荷看到,草案只是狀態資源。你可以使用PUT來更新它。
你能解釋一下爲什麼你想在URI路徑中進行DRAFT嗎?
'PUT'是更換整個實體,' PATCH' - 用於部分更新。 –
與我說的大部分事情都有關係。使用REST時的一般假設是您已獲得資源集合。這就是爲什麼最常見的命名約定是在命名端點時使用複數形式。
當我看到終端名爲/posts
時,我假設通過對它進行GET操作,我會收到帖子的集合。同樣,通過撥打/posts/{id}
我應該收到一個特定ID的帖子。 資源集合也彼此嵌入 - 當我看到端點/posts/{id}/drafts
時,我會假設我將爲具有給定ID的帖子獲取草稿。
現在的問題是這樣的 - 你想把你的數據作爲兩個單獨的集合(你必須以某種方式同步)或者你想堅持這個嵌入集合?如果第一個則可以有兩個端點/posts
和/drafts
。如果第二個,那麼你應該去與根端點/posts
,然後/posts/{id}/drafts
。
但是,如果帖子沒有草稿集合,那麼您可以簡單地使用一個/posts
端點,並且不要指定任何其他內容,因爲這會混淆API的設計。就像你的第一個主張一樣。
http://stackoverflow.com/questions/6845772/rest-uri-convention-singular-or-plural-name-of-resource-while-creating-it –