Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何对没有等效HTTP方法的RESTURL建模?_Rest - Fatal编程技术网

如何对没有等效HTTP方法的RESTURL建模?

如何对没有等效HTTP方法的RESTURL建模?,rest,Rest,我有客户,我想激活和取消他们的计划。我正在尽可能地保持安静 执行“活动”或“挂起”的操作是否应该是URI的一部分 1) 发布客户/{customerId}/激活计划/{planName} 2) 发布客户/{customerId}/suspendPlan/{planName} 我的问题是,激活和取消都是动词或动作。它们没有任何等价的HTTP操作(GET、POST、补丁等) 我的URL是restful的吗?如果不是,如何让它们休息。一切都是RESTful范式上的资源,这些资源通过HTTP方法之一(G

我有客户,我想激活和取消他们的计划。我正在尽可能地保持安静

执行“活动”或“挂起”的操作是否应该是URI的一部分

1) 发布客户/{customerId}/激活计划/{planName} 2) 发布客户/{customerId}/suspendPlan/{planName}

我的问题是,激活取消都是动词或动作。它们没有任何等价的HTTP操作(GET、POST、补丁等)


我的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的工作方式与您期望的完全相同:

    我的问题是activate和cancel都是动词或动作。它们没有任何等价的HTTP操作(GET、POST、补丁等)

    有几个不同的答案。也许最简单的方法是考虑如何设计一个允许激活和取消计划的网站。您可能会有一个客户注册的网页,该网页上可能有一个带有提示的链接,如“取消”。单击链接将加载一个新的网页,其中包含一个表单,包括一组供客户填写的字段。当客户提交表单时,浏览器会查看表单及其元数据,并确定要向服务器发送的请求

    “RESTAPI”不是将域模型放到web上,而是将交互模型放到web上。我们创建了一个描述域的文档(资源)集合,通过在网络中移动这些文档,我们可以完成有用的工作。看

    因为我们使用的是文档语言,所以REST接口通常基于以下思想之一

    • 这是一份文件;对文档副本进行本地编辑,并将其发送回服务器(GET、PUT、PATCH、DELETE是此样式中的主要方法标记)
    • 这是一张表格;填写详细信息并提交(GET和POST是您在这些情况下看到的方法标记)
    如果你对使用POST不满意,复习一下可能会有帮助

    POST在HTTP中有许多有用的用途,包括“此操作不值得标准化”的一般用途

    我的URL是restful的吗

    所有URI都是RESTful的——REST不关心您对资源标识符使用什么拼写约定

    请注意,以下两个URI的工作方式与您期望的完全相同:

    我的问题是activate和cancel都是动词或动作。它们没有任何等价的HTTP操作(GET、POST、补丁等)

    有几个不同的答案。也许最简单的方法是考虑如何设计一个允许激活和取消计划的网站。您可能会有一个客户注册的网页,该网页上可能有一个带有提示的链接,如“取消”。单击链接将加载一个新的网页,其中包含一个表单,包括一组供客户填写的字段。当客户提交