如何在 REST 中传递 STRING @RequestParam数组 获取 API 调用 通过 POSTMAN 或 D



>我在Java Spring应用程序中有以下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 调用,什么将传递该字段名称[]。

有谁知道该怎么做?

首先,您当前的方法不起作用,因为您的@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

这两个结果都应打印所需的结果。

最新更新