java - 有没有办法为具有不同 RequestBody 的不同方法提供相同的映射?(补丁请求)
问题描述
我有以下两种 API 方法:
@PatchMapping("/{id}")
@PreAuthorize("hasRole('ROLE_ADMIN')")
public ResponseEntity<Project> updateProjectInactivity(@PathVariable long id, @RequestBody InactivityDTO inactivityDTO)
throws ProjectNotFoundException {
return projectService.updateProjectInactivity(id, inactivityDTO);
}
@PatchMapping("/{id}")
@PreAuthorize("hasRole('ROLE_ADMIN')")
public ResponseEntity<Project> updateProjectStatus(@PathVariable long id, @RequestBody StatusDTO statusDTO)
throws ProjectNotFoundException {
return projectService.updateProjectStatus(id, statusDTO);
}
这两种方法有不同的@RequestBody
,但我目前得到一个错误,因为它们都有相同的映射。
有没有办法为具有不同 RequestBody 的不同方法提供相同的映射?如果没有,实现我想要的最佳解决方案是什么?我可以考虑给他们一个不同的@RequestParameter
,但这会很难看,因为我不需要那个参数。它只会用于实现不同的映射。
解决方案
这是因为@PatchMapping("/{id}")
在这两种方法中。
您可以拥有具有不同请求映射的相同 url。像下面
- @DeleteMapping("/{id}")
- @PatchMapping("/{id}")
您应该开始使用不同的请求路径,因为这两种方法都负责不同的操作或更改不同的子域。(根据休息约定)
用于编辑状态
- @PostMapping({"{id}/status"}) - 表示您正在编辑对象的状态。
同样,您应该对不活动使用不同的请求路径
推荐阅读
- linux - kde neon linux上的vscode中使用哪种字体
- flutter - 使用 SliverPersistentHeader 时,Header 会缩小,但会在 Flutter Web 中消失
- firebase - 没有为“documentreference”类型定义方法“setData”
- html - 如何让垂直居中的文本环绕浮动图像
- python-3.x - Numpy:正确剪辑 RGB 颜色的最快方法
- javascript - UseState 如何将 Array 设置回空?
- matplotlib - 如何在 matplotlib 中设置 unicode 标记的大小?
- python - 使用 pip 安装 python 包时星号 * 的用途是什么
- javascript - 我的 JavaScript 变量不会改变图像的位置
- transparency - 使用 Allegro4 的半透明图像