Re: [Dev] Use of URL template in ESB with a wildcard for query parameters
On Thu, Mar 20, 2014 at 12:52 PM, Pushpalanka Jayawardhana la...@wso2.comwrote: 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.comwrote: 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.comwrote: 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.
Re: [Dev] Use of URL template in ESB with a wildcard for query parameters
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.comwrote: 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.comwrote: 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.comwrote: 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.
Re: [Dev] Use of URL template in ESB with a wildcard for query parameters
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 10:23 AM, Pushpalanka Jayawardhana la...@wso2.comwrote: 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.comwrote: 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. Could find that though this is not working at 4.6.0 version, it works fine with 4.8.0 version. I will go with a workaround as it seems this is not supported in the used version of ESB. Thanks a lot for the thoughts.. 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.comwrote: 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
Re: [Dev] Use of URL template in ESB with a wildcard for query parameters
I was under the impression that you are using latest uri-template version (1.6.3 or above). Actually * support and query parameter support was not there in in 1.6.2 and we introduced it later. Referring this jira[1] Thanks, sanjeewa. [1]https://wso2.org/jira/browse/APIMANAGER-903 On Fri, Mar 21, 2014 at 12:05 AM, Pushpalanka Jayawardhana la...@wso2.comwrote: 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 10:23 AM, Pushpalanka Jayawardhana la...@wso2.com wrote: 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.comwrote: 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. Could find that though this is not working at 4.6.0 version, it works fine with 4.8.0 version. I will go with a workaround as it seems this is not supported in the used version of ESB. Thanks a lot for the thoughts.. 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:
Re: [Dev] Use of URL template in ESB with a wildcard for query parameters
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 URITemplate /sanjeewa/~{test}?* matches /sanjeewa/~tester?test Thanks, sanjeewa. On Wed, Mar 19, 2014 at 1:56 PM, Pushpalanka Jayawardhana la...@wso2.comwrote: 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/ ___ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev
Re: [Dev] Use of URL template in ESB with a wildcard for 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 On Wed, Mar 19, 2014 at 1:44 AM, Sanjeewa Malalgoda sanje...@wso2.comwrote: 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. 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?*. 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.comwrote: 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/ ___ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev
Re: [Dev] Use of URL template in ESB with a wildcard for query parameters
On Wed, Mar 19, 2014 at 2:56 PM, Pushpalanka Jayawardhana la...@wso2.comwrote: 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.comwrote: 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. 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/ ___ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev
Re: [Dev] Use of URL template in ESB with a wildcard for 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 On Wed, Mar 19, 2014 at 2:50 AM, Sanjeewa Malalgoda sanje...@wso2.comwrote: On Wed, Mar 19, 2014 at 2:56 PM, Pushpalanka Jayawardhana la...@wso2.comwrote: 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.comwrote: 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. 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/ ___ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev
Re: [Dev] Use of URL template in ESB with a wildcard for query parameters
On Thu, Mar 20, 2014 at 3:58 AM, Pushpalanka Jayawardhana la...@wso2.comwrote: 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.comwrote: 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.comwrote: 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/ ___ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev