Я успешно настроил быстрый тест для создания "REST-подобного" сервиса, который возвращает объект, сериализованный в JSON, и это было довольно просто и быстро (на основе этой статьи).
Но хотя возвращать JSON-ified объекты было легко, как персику, я еще не видел примеров, связанных с входными параметрами, которые не являются примитивами. Как я могу передать сложный объект в качестве аргумента? Я использую Apache CXF, но также приветствуются примеры использования других фреймворков, таких как Джексон :)
На стороне клиента, вероятно, будет что-то вроде создания объекта 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 {
...
}
}
Отправка сериализованных объектов в качестве параметров, вероятно, быстро коснется ограничения URL-адреса в 2 КБ, наложенного Internet Explorer. Вы бы порекомендовали использовать POST в этих случаях, и мне нужно было бы сильно изменить определения функций?