【问题标题】:Avoiding same post request in rest controller in spring boot在 Spring Boot 中避免在 rest 控制器中出现相同的 post 请求
【发布时间】:2018-11-03 17:20:15
【问题描述】:

假设我已经在我的 requestDto 中输入了字段并进行了一个 post 调用,它将数据保存在数据库中,如果我再次使用相同的 requestDto 字段点击 post api,则不应保存条目。 我如何在 Spring Boot 中实现此功能

【问题讨论】:

  • REST 调用应该彼此独立,以这种方式相互跟踪是 RESTful 的反模式,但您可以存储一些 id,或者可能是有效负载的哈希,如果那些匹配你可以拒绝或忽略请求?

标签: rest spring-boot


【解决方案1】:

请记住,POST 请求不是 indempotent:如果有多个相同的请求,您最终可能会创建多个相同的资源。

因此,为了防止资源被多次创建,您需要在服务器中进行某种验证。例如,您可以依赖数据库中的唯一约束,如果违反了约束,您可以使用409 拒绝请求。

【讨论】:

    猜你喜欢
    • 2016-01-27
    • 1970-01-01
    • 2019-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-20
    • 2019-02-20
    • 2021-09-16
    相关资源
    最近更新 更多