java 如何使用@PostMapping创建/删除/删除API

svmlkihl  于 5个月前  发布在  Java
关注(0)|答案(2)|浏览(65)

我经历了开发者spring Boot 的代码,他使用@PostMapping进行createupdatedelete资源。
通过一些id检查逻辑,他决定是否应该创建或更新资源!根据我的REST API知识,REST提供了

@GetMapping - getting resources

@PostMapping - Creating resources

@PutMapping - Update resources, if not available create it

@DeleteMapping - Deleting resources

@PatchMapping - Partial update

字符串
正在使用post make API more secure来创建、更新或删除。或者使用@Postmapping作为安全API是一个很好的做法。
如果我说错了请纠正我。

@PostMapping("/createOrUpdate")
public ResponseEntity<UserDto> createResource(@RequestBody YourResourceType resource) {
 // use JPA findById to check it exist or not, and perform create or update logic
}
@PostMapping("/delete")
public ResponseEntity<String> createResource(@RequestBody YourResourceType resource) {
// use JPA findById to check it exist or not, and perform delete resource logic or
oaxa6hgo

oaxa6hgo1#

根据我对REST API的了解,REST提供了
这不太对
REST说:我们应该有一个统一的接口。也就是说,所有的资源都应该以同样的方式理解消息。
HTTP说:这是HTTP应该理解消息的方式。2包括与每个注册的HTTP methods(GET、POST、PUT等)相关的语义。
POST是具有最少语义约束的方法标记-我们在任何时候使用它都是正确的,因为更具体的方法的语义不合适(参见Fielding 2009)。
请注意,transfer-of-documents-over-a-network域的HTTP方法-这些方法描述了对 resources(又名“documents”)的操作,并且不一定与作为操作文档的副作用而发生的有用工作相一致。

@PostMapping("/createOrUpdate")
@PostMapping("/delete")

字符串
每种消息都有一个资源标识符是“好的”;这本质上类似于网站上的每种表单都有不同的资源。
它不一定是一个理想的资源模型;为每种消息使用不同的资源会使缓存失效更加困难。但它会工作,并且在您实际上不关心缓存的环境中它可以“足够好”。

v7pvogib

v7pvogib2#

是的,你可以使用@PostMapping来创建/更新和删除,但这不是一个很好的方法。
我认为这可以打破编码标准。

相关问题