Как передать несколько карт / списков / массивов из URL-адреса API в RestController в Java? - PullRequest
0 голосов
/ 19 марта 2020

У меня есть метод, который принимает ArrayList, HashMap и List в качестве аргумента, а также другие параметры.

methodName(String request,
            ArrayList<String> referenceList, 
HashMap<String, String> params,
 Map<String, List<?>> inClause,
boolean isClassicFlatSuggestionBox) throws Exception {};

Теперь я знаю, как принимать нормальные строковые параметры и одну карту / список из URL .

http://localhost:8888/restApi/getSuggestionData/sa/warehouse?number=20,age=4

Этот URL-адрес возвращает переменную 2 Path String и карту числа и возраста в Controller, как это

public ResponseEntity<Collection<?>> getSuggestionList(@PathVariable("request") String request,@PathVariable("reference") String reference, @RequestParam HashMap<String, String> params)

Но как передать несколько карт? Я не могу взять все на одной карте, а затем играть с ней на стороне контроллера. Есть ли способ получить несколько карт / списков непосредственно на стороне контроллера?

1 Ответ

0 голосов
/ 19 марта 2020

Я предлагаю изменить это на POST и добавить полезную нагрузку, которая содержит необходимые объекты. Тогда ваш метод контроллера будет выглядеть так:

    @POST
    public ResponseEntity<Collection<?>> getSuggestionList(
             @PathVariable("request") String request, @PathVariable("reference") String reference, @RequestBody() Payload payload) { }

И класс Payload содержит список, который вы хотите:

public class Payload {

    @XmlElement
    private ArrayList<String> referenceList;

    @XmlElement
    private HashMap<String, String> params;

    // getters and setters here or Lombok :)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...