Установка нескольких параметров в запросе

#java #spring #parameters #get #request

Вопрос:

Мне нужно сформировать кэш, для регионов по идентификатору, которые передаются в параметре region_ids, запрос выглядит так:

 localhost:8080/cache/mscache?region_ids=5,19....,23
 

как лучше всего прочитать эти несколько параметров в программном коде?

Ответ №1:

прочитайте им строку и проанализируйте эту строку так, как вы хотите:

 @GetMapping("/cache/mscache)
public String getCache(@RequestParam String listOfRegionIds)
    List<String> ids = Arrays.stream(listOfRegiosIds.split(",")).collect(Collectors.toList);
// ...
}
 

более подробная информация на https://www.baeldung.com/spring-request-param

Ответ №2:

Вы можете использовать array или List

     @GetMapping(value = "/test")
    public void test(@RequestParam List<String> ids) {
        ids.forEach(System.out::println);
    }
 

Сделайте запрос на получение, например:

http://localhost:8080/test?ids=1,2,3

Проверьте здесь для получения более подробной информации.

Комментарии:

1. Этот ответ лучше, чем разбор region_ids .

2. @NiceBooks Я тоже так думаю, лучшая производительность и меньше работы 🙂

Ответ №3:

Если запрос является запросом Get, используйте @RequestParam, как sugessted Дж. Аскарова, если это что-то другое, вы также можете использовать @RequestBody, создав класс, содержащий все ваши параметры

например, запрос на публикацию может выглядеть следующим образом :

 @PostMapping("...")
public String postCache(@RequestBody RegionIdsRequest regionIds)
// ...
}

public class RegionIdsRequest{
    List<int> regionsIds = //...
}