Как передать сложные объекты в качестве аргументов службе RESTful?

Я успешно провел быстрый тест создания "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 в этих случаях, и нужно ли мне что-то менять в определениях функций?

36
задан oligofren 30 June 2019 в 10:58
поделиться