如何对没有等效HTTP方法的RESTURL建模?
我有客户,我想激活和取消他们的计划。我正在尽可能地保持安静 执行“活动”或“挂起”的操作是否应该是URI的一部分 1) 发布客户/{customerId}/激活计划/{planName} 2) 发布客户/{customerId}/suspendPlan/{planName} 我的问题是,激活和取消都是动词或动作。它们没有任何等价的HTTP操作(GET、POST、补丁等)如何对没有等效HTTP方法的RESTURL建模?,rest,Rest,我有客户,我想激活和取消他们的计划。我正在尽可能地保持安静 执行“活动”或“挂起”的操作是否应该是URI的一部分 1) 发布客户/{customerId}/激活计划/{planName} 2) 发布客户/{customerId}/suspendPlan/{planName} 我的问题是,激活和取消都是动词或动作。它们没有任何等价的HTTP操作(GET、POST、补丁等) 我的URL是restful的吗?如果不是,如何让它们休息。一切都是RESTful范式上的资源,这些资源通过HTTP方法之一(G
我的URL是restful的吗?如果不是,如何让它们休息。一切都是
RESTful
范式上的资源,这些资源通过HTTP
方法之一(GET
,POST
,PUT
,DELETE
等)进行操作
您可以使用POST
创建计划:
POST customers/{customerId}/{planName}
创建计划后,我们必须激活或停用它,这里我们有两个选择:
URI
中的操作。在这种情况下,我们使用PUT作为planName
资源的存在(因此它是一个更新):PUT customers/{customerId}/{planName}/activate
planName
资源上设置一个属性(由于它是planName
资源上的更新,所以仍然是一个PUT)。HTTP
PUT
请求主体中的activate
属性(即:activate=true
或activate=false)
:PUT customers/{customerId}/{planName}
然后可以使用GET返回planName
资源的状态
GET customers/{customerId}/{planName}
如果要从客户中删除planName
,请执行以下操作:
GET customers/{customerId}/{planName}
一切都是RESTful
范式上的资源,这些资源通过HTTP
方法之一(GET
,POST
,PUT
,DELETE
)进行操作
您可以使用POST
创建计划:
POST customers/{customerId}/{planName}
创建计划后,我们必须激活或停用它,这里我们有两个选择:
URI
中的操作。在这种情况下,我们使用PUT作为planName
资源的存在(因此它是一个更新):PUT customers/{customerId}/{planName}/activate
planName
资源上设置一个属性(由于它是planName
资源上的更新,所以仍然是一个PUT)。HTTP
PUT
请求主体中的activate
属性(即:activate=true
或activate=false)
:PUT customers/{customerId}/{planName}
然后可以使用GET返回planName
资源的状态
GET customers/{customerId}/{planName}
如果要从客户中删除planName
,请执行以下操作:
GET customers/{customerId}/{planName}
我的URL是restful的吗
所有URI都是RESTful的——REST不关心您对资源标识符使用什么拼写约定
请注意,以下两个URI的工作方式与您期望的完全相同:
- 这是一份文件;对文档副本进行本地编辑,并将其发送回服务器(GET、PUT、PATCH、DELETE是此样式中的主要方法标记)
- 这是一张表格;填写详细信息并提交(GET和POST是您在这些情况下看到的方法标记)