我想在Spring Boot应用程序中构建一个Rest包装器,该应用程序可以接受任何类型的请求(API调用)。假设我有两个API调用/ employee / 123(GET方法)/ dept / 123(PUT方法)。现在,当我遇到邮递员客户端的这两个请求时,我的包装程序应该接受这两种类型的请求。
我已经使用过滤器和拦截器进行了尝试。但是这些对我没有用。谁能解释一下如何做到这一点。
答案 0 :(得分:1)
不太清楚您的问题是什么。这是您要找的吗?
@RestController
public class SampleController {
@GetMapping(path = "/employee/{id}")
public String getEmployee(@PathVariable int id) {
....
}
@PutMapping(path = "/dept/{id}")
public String putDept(@PathVariable int id) {
....
}
}
还是您想要API代理?因此,也许看一下Zuul或任何类似的项目很有意义?
答案 1 :(得分:1)
如果您想接受POST,GET,DELETE或PUT之类的任何请求,请不要在RequestMethod
中提及@RequestMapping
的方法,并且如果要执行不同的操作取决于Request方法,那么使用HttpServletRequest
获取ReuestMethod
例如。
@RequestMapping({ "/employee/{id}", "/dept/{id}" })
public @ResponseBody String demo(HttpServletRequest request, @PathVariable("id") Integer id) {
if (request.getMethod().equalsIgnoreCase("POST")) {
return "POST MEhod";
} else if (request.getMethod().equalsIgnoreCase("GET")) {
return "GET Method";
} else if (request.getMethod().equalsIgnoreCase("PUT")) {
return "PUT Method";
} else {
return "DELETE Method";
}
}