Я успешно провел быстрый тест создания "REST-подобного" сервис, который возвращает объект, сериализованный в JSON, и это было довольно просто и быстро (на основе этой статьи ).
Но хотя возвращать объекты, связанные с JSON, было просто как персик, я еще не видел никаких примеров, касающихся входных параметров, которые не являются примитивами. Как передать сложный объект в качестве аргумента? Я использую Apache CXF, но также приветствуются примеры с использованием других фреймворков, таких как Jackson :)
На стороне клиента, вероятно, будет что-то вроде создания объекта javascript, его передачи в JSON.stringify (complexObj) и передачи этой строки как одной из параметры.
Служба, вероятно, будет выглядеть примерно так
@Service("myService")
class RestService {
@GET
@Produces("application/json")
@Path("/fooBar")
public Result fooBar(@QueryParam("foo") double foo, @QueryParam("bar") double bar,
@QueryParam("object") MyComplex object) throws WebServiceException {
...
}
}
Отправка сериализованных объектов в качестве параметров, вероятно, быстро достигнет ограничения в 2 КБ, установленного Internet Explorer. Вы бы порекомендовали использовать POST в этих случаях, и нужно ли мне что-то менять в определениях функций?