【发布时间】:2021-01-29 20:16:17
【问题描述】:
我有一个接收各种参数的 REST API 列表,这些参数旨在搜索、过滤并将数据返回到前端。
@GetMapping(value = "/api1", params = {"x,y,z,age,location"})
@GetMapping(value = "/api2", params = {"a,b,c,d,age,location"})
@GetMapping(value = "/api3", params = {"p,q,r,s,,age,location"})
@GetMapping(value = "/api4", params = {"p,q,r,s,,age,location"})
@GetMapping(value = "/api5", params = {"p,q,r,s,,age,location"})
如您所见,问题在于有几个参数(年龄、位置),这些参数对于所有这些端点都是通用的。
计划是我们可能需要向所有这些端点引入一个新参数,如“性别”。 是否有最佳实践跨 API 处理这些常用参数,这样我们就不需要修改每个 Controller 并添加新添加的请求参数?
控制器看起来像这样:
@RestController
public class UserFilterController {
@GetMapping(path = "/api1")
public ResponseEntity filterUserWithApi1(String x, String y, String z, String age, String location) {
return new ResponseEntity(HttpStatus.OK);
}
@GetMapping(path = "/api2")
public ResponseEntity filterUserWithApi2(String a, String b, String c, String age, String location) {
return new ResponseEntity(HttpStatus.OK);
}
@GetMapping(path = "/api3")
public ResponseEntity filterUserWithApi3(String d, String e, String f, String age, String location) {
return new ResponseEntity(HttpStatus.OK);
}
@GetMapping(path = "/api4")
public ResponseEntity filterUserWithApi4(String g, String s, String h, String age, String location) {
return new ResponseEntity(HttpStatus.OK);
}
@GetMapping(path = "/api5")
public ResponseEntity filterUserWithApi5(String j, String k, String l, String age, String location) {
return new ResponseEntity(HttpStatus.OK);
}
}
【问题讨论】:
-
能否分享控制器定义
-
@silentsudo,我已将控制器添加到帖子中。
-
我已经添加了我的回复。
标签: java spring spring-boot rest spring-restcontroller