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