Hi Dan, thanks for your hints!
We have solved it so that we pass single string parameter containing
multiple strings concatanated by a special character. So we have built an
custom marshaller/unmarshaller, guess similar to your second proposal.

Vladimir

Am 31.10.2017 07:52 schrieb "Dan Haywood" <d...@haywood-associates.co.uk>:

> Hi Vladimir,
>
> Sorry no-one came back to you on this... did you find a solution?
>
> I have two ideas.
>
> First, since in this case the view model is basically just two lsts of
> strings, probably the REST API ought to be able to support actions with
> collections as parameters.  I know that the Wicket viewer supports
> parameter collections, but I'm pretty sure that the RO viewer doesn't,
> unfortunately.  Maybe that's a ticket that ought to be raised and
> implemented.
>
> Second idea... rather than try to "upload" the OffterTemplateFilter view
> model as a parameter, instead treat it as a resource.  That is, have a new
> service to create an instance of the filter, and then update this filter
> (adding/removing from its two collections).  When done, pass a reference to
> the filter to the original REST service, as a regular reference.
> (Obviously the URL will be rather long and messy, but that's not a problem
> per-se).
>
> HTH
> Dan
>
>
>
>
> On Thu, 5 Oct 2017 at 13:58 Vladimir Nišević <vnise...@gmail.com> wrote:
>
> > I must provide a REST service accepting more complex view model as input
> > parameter.
> >
> > My view model parameter would look like
> >
> > @DomainObject(nature = Nature.VIEW_MODEL, objectType =
> > "OfferTemplateFilter")
> > @XmlRootElement(name = "OfferTemplateFilter")
> > @XmlAccessorType(XmlAccessType.FIELD)
> > @Getter @Setter
> > public class OfferTemplateFilter {
> >
> >     public OfferTemplateFilter() {
> >     }
> >
> >     public List<String> selectedDeviceManufacturer = new ArrayList<>();
> >
> >     public List<String> selectedDeviceSizes = new ArrayList<>();
> >
> > }
> >
> > My REST domain service would be someting like
> >
> > @DomainService(nature = NatureOfService.VIEW_REST_ONLY, objectType =
> > "OfferRestService")
> > public class OfferRestService {
> >
> >      @Action(semantics = SemanticsOf.IDEMPOTENT)
> >     public OfferTemplateSelectorForCustomer
> > offerSelectorForCustomer(final String subscriberNumber, final
> > OfferTemplateFilter filter) {
> >         return offerSelectorRepository.create(subscriberNumber, filter);
> >     }
> >
> >  ....
> > }
> >
> >
> > I'm wondering how this could be achieved without custom rest service.
> > Ideally the service consumer would post a kind of JSON structure where my
> > view model OfferTemplateFilter would be created?
> >
> > Any hint on this?
> >
> > Thanks
> > Vladimir
> >
>

Reply via email to