So, url requested looks like
localhost:8080/contacts?id=22&name=John&eventId=11
and also I got an object to map request into
public class ContactDTO {
private Long id;
private String name;
private Long eventId;
}
I use a controller method like passing my request params into an object
@GetMapping("/contacts")
public ContactDTO contacts(ContactDTO contact) {
// everything is awesome! contact maps clearly
return contact;
}
The question is how to map like this but have different name
localhost:8080/contacts?id=22&name=John&event_id=11
Setting @JsonAttribute doesn't works because Jackson mapper works only in requestbody. Maybe I should write custom HandlerMethodArgumentResolver or something like that?
P.S. I've got a dirty hack (objectMapper is injected, so I can use @JsonAttributes), But this case fails on array mapping, same mapping with requestbody works fine
@GetMapping("/contacts")
public ContactsDTO contacts(@RequestParam Map<String,String> params) {
ContactDTO contactDTO = objectMapper.convertValue(params,ContactDTO.class);
return contactDTO;
}