Spring rest中的哪个crud操作要使用post或delete?

Spring rest中的哪个crud操作要使用post或delete?,spring,rest,spring-boot,architecture,Spring,Rest,Spring Boot,Architecture,我已经创建了一个银行应用程序,我想在其中编写一个rest服务来删除帐户。因此,我们需要一个账号。为此,我认为出于安全原因,我不能在url中传递帐户号。所以我在请求体中传递它。我想如果我尝试将它与delete一起使用,它运行得很好,但这可能是一个安全问题。 所以在这种情况下,我需要使用post而不是delete,这样我就可以在请求正文中传递帐户号了吗 @PostMapping("/account") public void deleteAccount(@RequestBo

我已经创建了一个银行应用程序,我想在其中编写一个rest服务来删除帐户。因此,我们需要一个账号。为此,我认为出于安全原因,我不能在url中传递帐户号。所以我在请求体中传递它。我想如果我尝试将它与delete一起使用,它运行得很好,但这可能是一个安全问题。 所以在这种情况下,我需要使用post而不是delete,这样我就可以在请求正文中传递帐户号了吗

     @PostMapping("/account")
        public void deleteAccount(@RequestBody @Valid final AccountNoDto accountNoDto) {
            return accountService.deleteAccount(accountNoDto);
        }
or

  @DeleteMapping("/account/{accountNo}")
    public void deleteAccount(@PathVariable Long accountNo) {
        return accountService.deleteAccount(accountNo);
    }

理想情况下,我们使用@DeleteMapping进行删除操作,并使用@PostMapping进行数据的新创建和更新。我不认为帐户id是那个么多敏感的信息透露在网址。您可以选择@DeleteMapping

您应该使用@DeleteMapping,因为您正在删除记录。 HTTP谓词应该与函数的功能兼容

但是不要将帐号与端点一起发送。 将端点写为-

@DeleteMapping("/account")
应在后端从您将随请求一起发送的令牌中检索帐号。因此,所有请求GET、POST、PUT、DELETE都将具有相同的uri,并且帐号将从后端的令牌中获取。
如果您想知道它在春季是如何完成的,请阅读关于SecurityContextHolderclass

将代码放入正文或使用其他动词也不是很安全。你需要某种授权/认证机制。你能给我一段代码吗?我如何使用它?