构建一个可以接受任何类型请求的休息包装器

时间:2019-01-12 09:07:21

标签: java rest spring-boot spring-mvc jersey

我想在Spring Boot应用程序中构建一个Rest包装器,该应用程序可以接受任何类型的请求(API调用)。假设我有两个API调用/ employee / 123(GET方法)/ dept / 123(PUT方法)。现在,当我遇到邮递员客户端的这两个请求时,我的包装程序应该接受这两种类型的请求。

我已经使用过滤器和拦截器进行了尝试。但是这些对我没有用。谁能解释一下如何做到这一点。

2 个答案:

答案 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";
        }

    }