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

问题描述 投票:0回答:2

我经历了经验丰富的开发者 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 
java spring-boot rest post
2个回答
0
投票

根据我的 REST API 知识,REST 给出了

这不太正确。

REST 说:我们应该有一个统一的界面。也就是说,所有资源都应该以相同的方式理解消息。

HTTP 说:这就是 HTTP 应该理解消息的方式。其中包括与每个注册的 HTTP 方法(GET、POST、PUT 等)相关的语义。

POST 是语义约束最少的方法标记 - 只要更具体方法的语义不适合,我们就可以正确使用它(参见 Fielding 2009)。

请注意,通过网络传输文档域的 HTTP 方法 - 这些方法描述了资源(又名“文档”)的操作,并且不一定与有用的工作一致作为操作文档的副作用而发生。


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

每种消息都有一个资源标识符就“很好”;它本质上类似于网站上的每个表单都有不同的资源。

不一定是理想的资源模型;为每种消息使用不同的资源会使“缓存失效”变得更加困难。但它会起作用,并且在您实际上并不关心缓存的情况下它可能“足够好”。


0
投票

我认为这可能会破坏编码标准。

© www.soinside.com 2019 - 2024. All rights reserved.