Передача нескольких значений (например, объекта) непосредственно в URI очень подвержена ошибкам. Тем не менее, есть возможность сделать это. Хотя я бы не стал предлагать это в реальных приложениях. Кроме того, убедитесь, что вы не передаете конфиденциальные данные.
Предположим, у вас есть класс "Book":
public class Book {
private String name;
private String author;
private int pages;
public Book() {
}
// getters and setters are ommited for briefty, make sure you have them.
}
Ваш контроллер будет выглядеть так:
@RestController
public class LibraryController {
@GetMapping("/library")
public Book getBook(@RequestParam String book) throws JsonProcessingException {
return new ObjectMapper().readValue(book, Book.class);
}
}
Происходит следующее: мы вручную пытаемся отобразить переданную строку в ожидаемый объект.
Тогда наш запрос на получение будет следующим:
http://localhost:8080/library?book={"name": "title", "author": "someone", "pages": 400}
Дополнительные ресурсы:
При поиске ответа по inte rnet я нашел две статьи, которые могут вас заинтересовать.
Пример того, как сделать запрос GET с картой или список
Пример передачи объекта в GET-запросе