Я использую Spring Boot (последняя версия, 1.3.6), и я хочу создать конечную точку REST, которая принимает множество аргументов и объект JSON. Что-то вроде:
curl -X POST http://localhost:8080/endpoint \
-d arg1=hello \
-d arg2=world \
-d json='{"name":"john", "lastNane":"doe"}'
В контроллере Spring, который я сейчас делаю:
public SomeResponseObject endpoint(
@RequestParam(value="arg1", required=true) String arg1,
@RequestParam(value="arg2", required=true) String arg2,
@RequestParam(value="json", required=true) Person person) {
...
}
Аргумент json
не сериализуется в объект Person.
Я получаю
400 error: the parameter json is not present.
Очевидно, я могу сделать аргумент json
как String и проанализировать полезную нагрузку внутри метода контроллера, но этот тип не соответствует точке использования Spring MVC.
Все работает, если я использую @RequestBody
, но тогда я теряю возможность разделения POST-аргументов вне тела JSON.
Есть ли способ в Spring MVC "смешивать" обычные аргументы POST и объекты JSON?