如何根据http参数给出dto的两个表示?

时间:2017-11-05 13:37:01

标签: java spring rest spring-boot

我试图编写GET,它将返回基本或完整参数集的响应。

例如。请求此网址

localhost:8080/resource?&outputSchema=basic

应该返回

{
    "total": 5
}

但是这个请求

localhost:8080/resource?&outputSchema=extended

应该返回更多数据

{
    "total": 5,
    "name": "John"
}

如何根据请求参数在spring中发送不同的响应?

1 个答案:

答案 0 :(得分:0)

其实我找到了答案。对于@RequestMapping,应使用params参数按所需参数值进行过滤。

例如,一个端点看起来像这样

@RequestMapping(method = RequestMethod.GET, params = "outputSchema=basic", produces = {"application/json"})
public @ResponseBody MyResponse1 findSomeResource(
        @RequestParam(value = "outputSchema", required = true) String outputSchema) {
    return new MyResponse1();
}

和第二个

@RequestMapping(method = RequestMethod.GET, params = "outputSchema=extended", produces = {"application/json"})
public String test() {
    return "Different response";
}