Моя проблема: как я могу добавить все поля из моего объекта Java в URI в качестве параметров запроса.Преобразование полей объекта Java в параметры запроса в URI
Я пытаюсь вызвать HTTP-запрос GET с несколькими параметрами запроса. Все эти параметры запроса исходят от одного объекта Java. Я использую RestTemplate, предоставленный Spring Framework и ObjectMapper, предоставленный Джексоном.
@Override
public List<MyTypes> find(MyFilter myFilter) {
// object to Map
ObjectMapper objectMapper = new ObjectMapper();
Map<String, String> map = objectMapper.convertValue(myFilter, new TypeReference<Map<String,String>>() {});
// Map to MultiValueMap
LinkedMultiValueMap<String, String> linkedMultiValueMap = new LinkedMultiValueMap<>();
map.entrySet().forEach(e -> linkedMultiValueMap.add(e.getKey(), e.getValue()));
// call RestTemplate.exchange
return getRestTemplate().exchange(
uriBuilder().path(RestResourcePaths.My_PATH).queryParams(linkedMultiValueMap).build().toUri(),
HttpMethod.GET,
null,
new ParameterizedTypeReference<List<MyTypes>>() {}).getBody();
Следующие работы, как и ожидалось, однако, интересно, существует ли более простой способ его достижения.