Rest URI包含HTTP动作动词。我能认为这个API很耐用吗?

Rest URI包含HTTP动作动词。我能认为这个API很耐用吗?,rest,url,Rest,Url,在RESTful设计的上下文中定义以下方法: URI HTTP Body Result ----------------------------------------------------------------- listUsers GET empty Show list of all the users addUser POST JSON string Add detail

在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
我认为这是误导,因为它不安静

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的理解正确吗



不管RESTful的定义如何,在我看来,TutorialPoint提供了错误的设计,因为URL中的
deleteUser
复制了作为
DELETE
HTTP操作传递的信息,这违反了的通用原则。

是的,您的理解是正确的。该教程具有误导性。

对于REST API来说,第一组端点是一个糟糕的设计。这都是关于RPC的(请求不应该有有效负载)

第二组端点是面向资源的,这正是RESTAPI中需要的。URI标识资源,HTTP方法表示对资源的操作


然而,REST体系结构远远超出了URI设计

REST体系结构风格与协议无关,但大多数情况下都是通过HTTP协议设计的

RESTful应用程序中的基本概念是资源。资源可以有不同的表示形式。有关更多详细信息,这可能会有所帮助

要考虑RESTful,应用程序必须遵循Roy Thomas Fielding博士论文中定义的一组约束:

    • 资源识别
    • 资源表示
    • 自描述性消息
    • 超媒体

你说的“URL本身不是RESTful”是什么意思?我认为围绕资源的RESTful设计意味着URL将包含资源地址而不是操作地址。至少它们不应该复制已经作为HTTP请求类型传递的内容。@alpav RESTful的概念不仅仅取决于URL的设计方式。在通过HTTP协议设计REST时,URL必须面向资源,但也必须遵守一组约束。是的,面向资源的URL不是RESTful设计要求的唯一含义,但它是一种含义吗?在任何RESTful设计中,动作都可以在URL内部进行吗?我认为这是不可能的。在HTTP上的REST应用程序中,URI必须用于标识资源,而HTTP方法必须用于表示操作。所以,是的,第一组端点对于RESTAPI来说是一个糟糕的设计。