【问题标题】:Are POST requests with only path variables and no body a bad practice?只有路径变量而没有正文的 POST 请求是一种不好的做法吗?
【发布时间】:2018-08-26 05:35:48
【问题描述】:

我的情况是,我需要执行 POST 请求,只需要路径参数,没有内容。

由于我使用的是 Spring Boot,因此我有一个带有 @PostMapping 注释的方法,如下所示:

@PostMapping("/firstEntity/{firstEntityId}/secondEntity/{secondEntityId}")

我阅读了一些关于发送不带正文的POST 请求的主题和问题,发现发送不带正文但带有标头的 POST 请求不是'这是一个不好的做法。这并不常见。

但是,在我没有发送任何内容、内容或标题的情况下,这是一种不好的做法吗?

对于那些想知道我为什么要这样做的人,事实是我需要在我的服务层中执行一个方法,将一个表中的记录与另一个表中的记录相关联。

【问题讨论】:

  • 在这个例子中,POST 的目的是什么? POST 用于创建资源;这实际上是您 POST 的意图吗?
  • @ChrisCousins 我需要在我的服务层中执行一个方法,将一个表中的记录与另一个表中的记录相关联。基本上,是的,它正在创建一个资源

标签: http spring-boot post


【解决方案1】:

GET 请求可以被添加到浏览器中的 url 中并被添加到书签中。

POST 请求不能被添加书签,也不能通过访问浏览器中的 url 来命中。

您通过 POST 执行此操作是正确的,因为您不希望它被添加书签或意外点击

【讨论】:

    【解决方案2】:

    没有正文的 POST 是完全有效的,在许多情况下它很有意义。另一种选择是:

    POST /firstEntity/{firstEntityId}/secondEntity
    

    然后提供 secondEntityId 作为该 POST 的正文。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-10
      • 2023-03-19
      • 2011-12-20
      • 2011-12-19
      • 2017-12-01
      • 2019-07-09
      • 2010-12-22
      相关资源
      最近更新 更多