On Thu, Mar 20, 2014 at 12:52 PM, Pushpalanka Jayawardhana <la...@wso2.com>wrote:
> Hi, > > I tried this with ESB sample 800 in ESB 4.6.0. > > Modified the API as follows, > > <api xmlns="http://ws.apache.org/ns/synapse" name="StockQuoteAPI" > context="/stockquote"> > <resource methods="GET" uri-template=*"/view/{symbol}?*"*> > <inSequence> > <payloadFactory> > <format> > <m0:getQuote xmlns:m0="http://services.samples"> > <m0:request> > <m0:symbol>$1</m0:symbol> > </m0:request> > </m0:getQuote> > </format> > <args> > <arg expression="get-property('uri.var.symbol')"/> > </args> > </payloadFactory> > <send> > <endpoint> > <address uri=" > http://localhost:9000/services/SimpleStockQuoteService" format="soap11"/> > </endpoint> > </send> > </inSequence> > <outSequence> > <send/> > </outSequence> > </resource> > <resource methods="POST"> > <inSequence> > <property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/> > <property name="OUT_ONLY" value="true"/> > <send> > <endpoint> > <address uri=" > http://localhost:9000/services/SimpleStockQuoteService" format="soap11"/> > </endpoint> > </send> > </inSequence> > </resource> > </api> > > When tried with, curl -v http://127.0.0.1:8280/stockquote/view/WSO2 > ---> no reponse --> No errors at ESB side > This is the expected behavior. You need to understand this syntax first. Here by *?* *we define that we can have anything after ? symbol. But up to '?' symbol things should map exactly. Simply you need to aware that * means you can have anything after that point and you must allways define it at the end of resource definition. > When tried with, curl -v http://127.0.0.1:8280/stockquote/view/WSO2?* > --> gives a response --> works fine > > So it seems ?* is not detected as wildcard on query parameters, but part > of URI-template. > > Thanks, > Pushpalanka. > -- > Pushpalanka Jayawardhana, B.Sc.(Hons). > Software Engineer, WSO2 Lanka (pvt) Ltd; wso2.com/ > Mobile: +94779716248 > Blog: pushpalankajaya.blogspot.com/ | LinkedIn: > lk.linkedin.com/in/pushpalanka/ | Twitter: @pushpalanka > > > > On Wed, Mar 19, 2014 at 10:50 PM, Sanjeewa Malalgoda <sanje...@wso2.com>wrote: > >> >> >> >> On Thu, Mar 20, 2014 at 3:58 AM, Pushpalanka Jayawardhana <la...@wso2.com >> > wrote: >> >>> >>> Thanks, >>> Pushpalanka. >>> -- >>> Pushpalanka Jayawardhana, B.Sc.(Hons). >>> Software Engineer, WSO2 Lanka (pvt) Ltd; wso2.com/ >>> Mobile: +94779716248 >>> Blog: pushpalankajaya.blogspot.com/ | LinkedIn: >>> lk.linkedin.com/in/pushpalanka/ | Twitter: @pushpalanka >>> >>> >>> >>> On Wed, Mar 19, 2014 at 2:50 AM, Sanjeewa Malalgoda >>> <sanje...@wso2.com>wrote: >>> >>>> >>>> >>>> >>>> On Wed, Mar 19, 2014 at 2:56 PM, Pushpalanka Jayawardhana < >>>> la...@wso2.com> wrote: >>>> >>>>> Thanks, >>>>> >>>>> Pushpalanka. >>>>> -- >>>>> Pushpalanka Jayawardhana, B.Sc.(Hons). >>>>> Software Engineer, WSO2 Lanka (pvt) Ltd; wso2.com/ >>>>> Mobile: +94779716248 >>>>> Blog: pushpalankajaya.blogspot.com/ | LinkedIn: >>>>> lk.linkedin.com/in/pushpalanka/ | Twitter: @pushpalanka >>>>> >>>>> >>>>> >>>>> On Wed, Mar 19, 2014 at 1:44 AM, Sanjeewa Malalgoda <sanje...@wso2.com >>>>> > wrote: >>>>> >>>>>> First for this type of definitions you need to use uri-template >>>>>> instead of url-mapping. With uri-templates only you will be able to >>>>>> define >>>>>> resource variables as you mentioned. See following examples. >>>>>> >>>>>> URITemplate /sanjeewa/{name,id}/* >>>>>> matches /sanjeewa/user,190/test >>>>>> matches /sanjeewa/user,190/test?year=2012 >>>>>> >>>>> >>>>> Thanks for the reply. >>>>> So as I understood we will be able to get name and id values as ' >>>>> get-property('uri.var.name')'. But is there way to read in 'test' as >>>>> a value as well. >>>>> >>>> AFAIK we cannot get it. Workaround would be get To property and do >>>> some string manipulation to extract it. >>>> >>>>> >>>>> eg: /sanjeewa/user,190/test?year=2012 >>>>> /sanjeewa/user,190/prod?year=2012 >>>>> /sanjeewa/user,190/pre-prod?year=2012 so we need to read the >>>>> path whether it's test/prod pr pre-prod as well. >>>>> >>>>> I have tried with URITemplate /sanjeewa/{name,id}/{environment}?* . >>>>> But this did not work and is expecting URL to be >>>>> /sanjeewa/user,190/test?*. >>>>> >>>> I didn't get your question. Can you point me uri template created and >>>> request sent. Did you see any error like resource not matching or something >>>> similar. >>>> >>> URI-Template : /sanjeewa/{name,id}/{environment}?* >>> matches : /sanjeewa/user,190/test?* >>> >>> but not matching to : /sanjeewa/user,190/test?arg1=value1 >>> I was just checking whether the wildcard is effective and it is not. >>> >>> Thanks for the workaround. >>> >> I just added following to uri template test cases and it worked for me. >> So it should work IMO. If not that is bug and we might need to fix this. >> >> template = new URITemplate("/sanjeewa/{name,id}/{test}?*"); >> var.put("test","tester"); >> var.put("name", "user"); >> var.put("id", "190"); >> assertTrue(template.matches("/sanjeewa/user,190/tester?test=12", >> var)); >> >> Thanks, >> sanjeewa. >> >>> >>> >>> >>>> Thanks, >>>> sanjeewa. >>>> >>>>> Please let me know if I am missing anything. >>>>> >>>>> >>>>> >>>>>> URITemplate /sanjeewa/~{test}?* >>>>>> matches /sanjeewa/~tester?test >>>>>> >>>>>> Thanks, >>>>>> sanjeewa. >>>>>> >>>>>> >>>>>> On Wed, Mar 19, 2014 at 1:56 PM, Pushpalanka Jayawardhana < >>>>>> la...@wso2.com> wrote: >>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> We need to read in some parameters from the URL path as well as some >>>>>>> optional query parameters. (in ESB 4.6.0) >>>>>>> >>>>>>> Have tried few combinations of URL-mapping and URI- templates. >>>>>>> Is it possible to use something similar to >>>>>>> >>>>>>> <resource methods="GET" url-mapping="/case/{grade}/{studentId}?*"> >>>>>>> >>>>>>> This did not work for me. >>>>>>> Is it possible to achieve this functionality without modifying the >>>>>>> URL to get everything as query parameters? >>>>>>> >>>>>>> Thanks, >>>>>>> Pushpalanka. >>>>>>> -- >>>>>>> Pushpalanka Jayawardhana, B.Sc.(Hons). >>>>>>> Software Engineer, WSO2 Lanka (pvt) Ltd; wso2.com/ >>>>>>> Mobile: +94779716248 >>>>>>> Blog: pushpalankajaya.blogspot.com/ | LinkedIn: >>>>>>> lk.linkedin.com/in/pushpalanka/ | Twitter: @pushpalanka >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Dev mailing list >>>>>>> Dev@wso2.org >>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> >>>>>> *Sanjeewa Malalgoda* >>>>>> Senior Software Engineer >>>>>> WSO2 Inc. >>>>>> Mobile : +94713068779 >>>>>> >>>>>> <http://sanjeewamalalgoda.blogspot.com/>blog >>>>>> :http://sanjeewamalalgoda.blogspot.com/<http://sanjeewamalalgoda.blogspot.com/> >>>>>> >>>>>> >>>>>> >>>>> >>>> >>>> >>>> -- >>>> >>>> *Sanjeewa Malalgoda* >>>> Senior Software Engineer >>>> WSO2 Inc. >>>> Mobile : +94713068779 >>>> >>>> <http://sanjeewamalalgoda.blogspot.com/>blog >>>> :http://sanjeewamalalgoda.blogspot.com/<http://sanjeewamalalgoda.blogspot.com/> >>>> >>>> >>>> >>> >> >> >> -- >> >> *Sanjeewa Malalgoda* >> Senior Software Engineer >> WSO2 Inc. >> Mobile : +94713068779 >> >> <http://sanjeewamalalgoda.blogspot.com/>blog >> :http://sanjeewamalalgoda.blogspot.com/<http://sanjeewamalalgoda.blogspot.com/> >> >> >> > -- *Sanjeewa Malalgoda* Senior Software Engineer WSO2 Inc. Mobile : +94713068779 <http://sanjeewamalalgoda.blogspot.com/>blog :http://sanjeewamalalgoda.blogspot.com/<http://sanjeewamalalgoda.blogspot.com/>
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev