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

Reply via email to