gpt4 book ai didi

language-agnostic - 自定义操作应该使用哪个动词?

转载 作者:行者123 更新时间:2023-12-04 08:37:24 25 4
gpt4 key购买 nike

假设我们有一个网站,我们有一个项目列表。在这些项目中的每一个上,您可以启动几个不同的过程,这些过程将产生与相关项目相关的某种输出。您应该如何设计以最恰本地使用 http 动词?我想要的是每个项目有多个链接,每个链接触发其中一个操作,但在我的场景中,它与 HTTP-VERB get 不匹配,如果我使用链接,将使用它。另一方面,我不希望所有按钮都在一个单独的表单中,并且具有不同的操作。

这有点难以解释,但希望你理解,这应该是一些最佳实践。

最佳答案

你不应该使用 GET。 GET 请求应该是 safe这意味着它们仅用于信息检索,不应更改服务器的状态。 (即日志之类的事情是可以的,但实际更新应用程序状态的事情是禁忌。)想想一个爬虫检查你的应用程序。任何你不介意爬虫通过的东西都适合 GET,但这听起来不像你的情况(因为你说,“启动几个不同的进程”,但我可能会误解你的用例)。

剩下的就是 PUT、DELETE 和 POST。 PUT 和 DELETE 必须是 idempotent ,这意味着多个相同的请求应该与单个请求具有相同的效果。所以如果你有一个请求更新一个人的名字,例如,如果你调用它一次或 100 次,这个人的名字仍然是一样的,所以它是幂等的。

POST 是最灵活的动词。如果您启动的进程不安全或幂等(或者即使它们是),您可以使用 POST,它不能保证任何有关安全或幂等的内容。缺点是:

  • 如果在 GET 在语义上更正确时使用 POST,则它与您的请求意图的交流较少,因为 POST 通常意味着您正在发送有效负载。
  • 您只是无法利用 Web 的缓存基础架构使其具有如此高的可扩展性。
  • 关于language-agnostic - 自定义操作应该使用哪个动词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6650857/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com