如何通过POSTMAN或DHC REST应用程序在REST GET API调用中传递@RequestParam中的String数组?

时间:2016-01-22 01:38:34

标签: spring-boot postman http-request-parameters

我在Java Spring Application中有以下REST控制器:

@RequestMapping(
     value = "/api/getApplication/{me_userId}", 
     method = RequestMethod.GET, 
     produces = MediaType.APPLICATION_JSON_VALUE)
public Object getApplication(
        @PathVariable String userId,
        @RequestParam(value="fieldNames[]", required = false) String[] fieldNames) {

            if (fieldNames != null) {
                for (String fieldName : fieldNames)
                    System.out.println(fieldName);
            }

            ...
            return null;
}

所以我无法成功模拟来自POSTMAN的DHC REST的API调用将传递那个fieldNames []。

有谁知道怎么做?

1 个答案:

答案 0 :(得分:1)

首先,您当前的方法不起作用,因为您的@PathVariable错误。在@RequestMapping中,您的路径中包含以下占位符:{me_userId},这意味着它将映射到具有该名称的路径变量。

但是,您拥有的唯一@PathVariable是无名的,这意味着它将使用参数名称(userId)代替。

因此,在您尝试执行请求之前,您必须将@RequestMapping更改为:

@RequestMapping(
    value = "/api/getApplication/{userId}", // <-- it's now {userId}
    method = RequestMethod.GET, 
    produces = MediaType.APPLICATION_JSON_VALUE)

然后,如果您运行该应用程序,您可以选择如何传递参数。以下两项都有效:

?fieldNames[]=test,test2

或者:

?fieldNames[]=test&fieldNames[]=test2

这些结果都应打印出所需的结果。