TutorialsPoint定義了以下方法REST風格的設計背景:URI包含HTTP動作動詞。我可以考慮這個API RESTful嗎?
URI HTTP Body Result
-----------------------------------------------------------------
listUsers GET empty Show list of all the users
addUser POST JSON string Add details of new user
deleteUser DELETE JSON string Delete an existing user
:id GET empty Show details of a user
我覺得這是一種誤導,因爲它不是REST風格。
一個RESTful設計是如下:
URI HTTP Body Result
----------------------------------------------------------------
users GET empty Show list of all the users
users POST JSON string Add details of new user
users DELETE empty Delete an existing user
users/:id GET empty Show details of a user
是我的RESTful正確的理解?無論REST風格的定義
,在我看來,TutorialsPoint提出錯誤的設計,因爲deleteUser
內部URL複製一個已經爲DELETE
HTTP行動,這違反了Once And Only Once普遍原則傳遞的信息。
你是什麼意思 「本身的網址是不是REST風格」?我認爲圍繞資源進行RESTful設計意味着URL將包含資源地址而不是操作地址。至少他們不應該重複已經作爲HTTP請求類型傳遞的內容。 – alpav
@alpav _RESTful_概念並不依賴於URL的設計方式。在通過HTTP協議設計REST時,URL必須是面向資源的,但也有一些必須遵守的約束條件。 –
是的,面向資源的URL並不是RESTful設計要求的唯一含義,但這是否意味着什麼?可以在任何RESTful設計中的URL內部採取行動?我認爲它不能。 – alpav