作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的数据库中有一个用户表,其中包含 2 个字段id 和name。我想创建一个 API 来根据 ID 或名称删除用户。像这样:
@DeleteMapping(path = "/{name}")
public ResponseEntity<Object> clearUser(@PathVariable("name") String name){
myService.deleteUser(name);
return new ResponseEntity<>(HttpStatus.OK);
}
@DeleteMapping(path = "/{id}")
public ResponseEntity<Object> clearUser(@PathVariable("id") int id){
myService.deleteUser(id);
return new ResponseEntity<>(HttpStatus.OK);
}
但我想在一个 @DeleteMapping
下执行此操作,并且我必须仅使用路径参数而不是查询参数来执行此操作。一个人可以输入 ID 或名称来删除该用户。
最佳答案
您可以使用两个路径变量作为可选。
@DeleteMapping(path = {"/{name}", "/{id}")
public ResponseEntity<Object> clearUser(@PathVariable("name") Optional<String> name, @PathVariable("id") Optional<Integer> id){
myService.deleteByIdOrName(id, name);
return new ResponseEntity<>(HttpStatus.OK);
}
MyRepo ...
void deleteByIdOrName(Optional<Integer> id, Optional<String> name);
MyService
void deleteByIdOrName(Optional<Integer> id, Optional<String> name) {
repo.deleteByIdOrName(id, name);
}
关于java - 如何为2个参数实现单个DeleteMapping?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57704189/
我是一名优秀的程序员,十分优秀!