Hi Hasitha,

Thanks for the provided suggestions. I tested the suggested approaches and
we can go ahead with HttpRequest injection and the usage of @QueryParam.


Regards,
Himasha

On Fri, Mar 25, 2016 at 11:02 AM, Hasitha Aravinda <[email protected]> wrote:

> Hi team,
>
> Please find my comments inline.
>
> On Fri, Mar 25, 2016 at 10:27 AM, Himasha Guruge <[email protected]>
> wrote:
>
>> Hi All,
>>
>> I'm in the process of rewriting our existing BPMN REST API for C5, with
>> msf4j in place. While checking the used annotations in the code,  I came
>> across the use of @Context annotation in order to inject UserInfo [1]
>>  interface which provides access to application and request URI
>> information. We have used following two methods of this interface
>> throughout the code.
>>
>> (1) QueryParameters()
>> (2) getBaseUri()
>>
>
> Do we have an equlent for
> ​
> uriInfo.getBaseUri in MSF4J supported annotation ? Can't we use
> io.netty.handler.codec.http.HttpRequest.getUri()
> ​ ​
>
> ​?​
>
>
> I tested if it's possible to inject UriInfo interface in msf4j by
>> deploying a simple microservice sample (which uses @Context UriInfo info)
>>  which failed with an error in executing the request, which means the
>> injection of it is not possible with current msf4j implementation. [2]
>>
>> In [2] it is mentioned that there is @QueryParam annotation support in
>> msf4j which we can use alternatively where we would have to pass the query
>> parameter to the method in the same way we use @PathParam. See usage in [3].
>>
>> However, issues arise in following scenarios.
>>
>>  For example, In ModelService[4] we have a large  range of allowed  query
>> params (name,nameLike,category,categoryLike etc) for a method, and based on
>> the query params that the user has  passed (by using
>> uriInfo.getQueryParameters()) we process the request accordingly.   In such
>> a case if we are to use @
>> ​​
>> QueryParam it would mean we would have to pass all possible query
>> parameters (Around 15) to the method.
>>
>
> I think this is should be ok.
>
> ​
>>
>>
> Also, we have used
>> ​​
>> uriInfo.getBaseUri() method throughout as well.
>>
>> How are we going to proceed with this? Appreciate your suggestions on
>> this.
>>
>> [1]
>> https://jsr311.java.net/nonav/releases/1.1/javax/ws/rs/core/UriInfo.html
>>
>> [2]
>> https://docs.wso2.com/display/MSF4J100/Key+Concepts#KeyConcepts-Supportedannotations
>>
>> [3] http://www.mkyong.com/webservices/jax-rs/jax-rs-queryparam-example/
>>
>> [4]
>> https://github.com/wso2/carbon-business-process/blob/de4d3ca5a2c3d670dcbf07ee6b58f0afd9489e95/components/bpmn/org.wso2.carbon.bpmn.rest/src/main/java/org/wso2/carbon/bpmn/rest/service/repository/ModelService.java#L98
>>
>> Regards,
>>
>> Himasha Guruge
>> *Software Engineer*
>> WS*O2* *Inc.*
>> Mobile: +94 777459299
>> [email protected]
>>
>
> ​Thanks,
> Hasitha. ​
>
>
>
>
> --
> --
> Hasitha Aravinda,
> Senior Software Engineer,
> WSO2 Inc.
> Email: [email protected]
> Mobile : +94 718 210 200
>



-- 
Himasha Guruge
*Software Engineer*
WS*O2* *Inc.*
Mobile: +94 777459299
[email protected]
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to