#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 = //...
}