Hi, 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 Thu, Mar 20, 2014 at 1:00 AM, Sanjeewa Malalgoda <sanje...@wso2.com>wrote: > > > > 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. > Thanks. My bad I didn't put the URLs that are not working correctly. curl -v http://127.0.0.1:8280/stockquote/view/WSO2? --> not working curl -v http://127.0.0.1:8280/stockquote/view/WSO2?username=lanka --> not working Then if I try changing the URI-template in ESB as 'uri-template=" */view/{symbol}**"' This time it only works if the URL matches like --> /stockquote/view/WSO2* These does not work : http://127.0.0.1:8280/stockquote/view/WSO2?username=lanka http://127.0.0.1:8280/stockquote/view/WSO2 So I think, with the way I define the template, it is not identifying the '*' as a wild card in resource definition. Please correct me if I am wrong. > 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