Technically speaking, you can do this by retrieving the original request
from the exchange's in field and calling the appropriate methods to get the
original query params.

The field can be found here:
https://github.com/apache/camel/blob/master/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/RestletConstants.java#L28

- John

On Tue, Apr 26, 2016 at 7:50 AM Steve Huston <shus...@riverace.com> wrote:

> Ok, so what I'm trying to do won't work at this time?
>
> I've been going through camel-restlet docs trying to get at what Claus was
> surely referring to as a solution ;-)
>
> > -----Original Message-----
> > From: John D. Ament [mailto:johndam...@apache.org]
> > Sent: Tuesday, April 26, 2016 7:02 AM
> > To: users@camel.apache.org
> > Subject: Re: Not seeing query params on REST DSL
> >
> > IMHO what Steve's describing is a pretty useful feature.  I created a
> JIRA
> > - https://issues.apache.org/jira/browse/CAMEL-9914
> >
> > I'll try to get to it pretty soon.
> >
> > John
> >
> > On Mon, Apr 25, 2016 at 2:28 PM Claus Ibsen <claus.ib...@gmail.com>
> > wrote:
> >
> > > That is for the api documentation.
> > >
> > > Its the camel-restlet component that does the actual mapping from
> > > restlet to camel exchange/message.
> > >
> > > On Mon, Apr 25, 2016 at 7:59 PM, Steve Huston <shus...@riverace.com>
> > > wrote:
> > > > Ok, what registers the query param if this doesn't?
> > > >
> > > > restConfiguration().component("restlet").port(9000);
> > > >             rest("/asset")
> > > >
> > >
> > .put("/{addr}/pong").param().name("id").type(RestParamType.query).endP
> > > aram()
> > > >                                .to("log:steve?showAll=true")
> > > >                                .to("mock:result");
> > > >
> > > >> -----Original Message-----
> > > >> From: John D. Ament [mailto:johndam...@apache.org]
> > > >> Sent: Monday, April 25, 2016 1:52 PM
> > > >> To: users@camel.apache.org
> > > >> Subject: Re: Not seeing query params on REST DSL
> > > >>
> > > >> Apologies as I missed this.
> > > >>
> > > >> As far as I know, you need to explicitly register your query params.
> > > They are
> > > >> not automatically propagated.
> > > >>
> > > >> John
> > > >>
> > > >> On Mon, Apr 25, 2016 at 1:33 PM Steve Huston
> > <shus...@riverace.com>
> > > >> wrote:
> > > >>
> > > >> > On the risk of aggravating people (sorry) popping this up to
> > > >> > today's content... any help is most welcome.
> > > >> >
> > > >> > Thanks!
> > > >> > -Steve
> > > >> >
> > > >> > > -----Original Message-----
> > > >> > > From: Steve Huston
> > > >> > > Sent: Wednesday, April 20, 2016 8:57 PM
> > > >> > > To: users@camel.apache.org
> > > >> > > Subject: Re: Not seeing query params on REST DSL
> > > >> > >
> > > >> > > I am using Camel 2.16.3 and restlet.
> > > >> > >
> > > >> > > -Steve
> > > >> > >
> > > >> > > > On Apr 20, 2016, at 7:27 PM, John D. Ament
> > > >> <johndam...@apache.org>
> > > >> > > wrote:
> > > >> > > >
> > > >> > > > Steve
> > > >> > > >
> > > >> > > > Could you share your dependencies as well?  Which rest
> > > >> > > > runtime are you using?
> > > >> > > > On Apr 20, 2016 17:12, "Steve Huston" <shus...@riverace.com>
> > > wrote:
> > > >> > > >
> > > >> > > >> I am using the REST DSL in a Camel SCR unit test. I have a
> > > >> > > >> route (being
> > > >> > > >> tested) that will initiate a http request at this URL:
> > > >> > > >>
> > > >> > > >>        @Test
> > > >> > > >>        public void testRoutes() throws Exception {
> > > >> > > >>        context.addRoutes(new RouteBuilder() {
> > > >> > > >>                @Override
> > > >> > > >>                public void configure() throws Exception {
> > > >> > > >>
> > > >> > > >> restConfiguration().component("restlet").port(9000);
> > > >> > > >>                        rest("/asset")
> > > >> > > >>                                .put("/{addr}/pong")
> > > >> > > >> .param().name("id").type(RestParamType.query).endParam()
> > > >> > > >>                                .to("log:steve?showAll=true")
> > > >> > > >>                                .to("mock:result");
> > > >> > > >>                }
> > > >> > > >>        });
> > > >> > > >>
> > > >> > > >>        MockEndpoint resultEndpoint =
> > > >> > > >> context.getEndpoint("mock:result",
> > > >> > > >> MockEndpoint.class);
> > > >> > > >>        resultEndpoint.expectedMessageCount(1);
> > > >> > > >>
> > > >> > > >>
> > > >> resultEndpoint.message(0).header("addr").isEqualTo("my_test_value")
> > > >> ;
> > > >> > > >>
> > > >> > > >> resultEndpoint.message(0).header("id").isEqualTo("abcd1234")
> > > >> > > >> ;
> > > >> > > >>
> > > >> > > >>
> > > >> > > >> At run time, the request does arrive as a PUT to
> > > >> > > >> http://127.0.0.1:9000/asset/my_test_value/pong?id=abcd1234
> > > >> > > >>
> > > >> > > >> However, I am only getting the "addr" path parameter in the
> > > header.
> > > >> > > >> The query param "id" is missing.
> > > >> > > >> Am I doing something wrong on the definition? I pieced
> > > >> > > >> together the way to do it from disparate tidbits on the net.
> > > >> > > >>
> > > >> > > >> Thanks,
> > > >> > > >> -Steve
> > > >> > > >>
> > > >> >
> > > >> >
> > >
> > >
> > >
> > > --
> > > Claus Ibsen
> > > -----------------
> > > http://davsclaus.com @davsclaus
> > > Camel in Action 2: https://www.manning.com/ibsen2
> > >
>

Reply via email to