我创建了一个银行应用程序,我想在其中编写一个休息服务以删除帐户。因此我们需要一个帐号。出于安全考虑,我认为我无法在url中传递帐号no。所以我在请求正文中传递了它。我认为,如果我尝试将其与delete一起使用,它将运行良好,但再次可能是安全问题。 所以在那种情况下,我需要使用post而不是delete以便我可以在请求正文中传递帐号no吗?
@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);
}
答案 0 :(得分:2)
您应该使用@DeleteMapping,因为您要删除一条记录。 HTTP动词应符合该功能的作用。
但是不要将帐号和端点一起发送。 将端点写为-
print
应该在后端从您将与请求一起发送的令牌中检索帐号,因此所有请求GET,POST,PUT,DELETE都将具有相同的uri,并且将从令牌中获取该帐号后端。 如果您想知道春季如何完成此操作,请阅读 SecurityContextHolder 类
答案 1 :(得分:0)
理想情况下,我们使用@DeleteMapping进行删除操作,并使用@PostMapping进行数据的新创建和更新。我不认为帐户ID是要在网址中显示的敏感信息。你可以去@DeleteMapping