Hi Lakmali and Dinusha,

       As you have been completed the tomcat valve, shall I use the tomcat
valve ( kind of interceptor) to test the Registry REST API with the
externally running API Manager instance ?

 Thanks,
 Ragu



On Tue, Jun 18, 2013 at 1:20 PM, Dinusha Senanayaka <[email protected]>wrote:

>
>
> On Tue, Jun 18, 2013 at 12:59 PM, Sriragu Arudsothy <[email protected]>wrote:
>
>> Hai Dinusha,
>>
>>                   At the later part of your answer, you mentioned the how
>> to send the request. Do we have a use case where "without API manager".
>> AFAIR, It has been clearly said during the final discussion , request will
>> be given inbuilt or external APIM. But you mention about without APIM.
>>
>
> But, when it comes to services like DSS, AS etc, we need to have this
> capability. Services, should be able to invoke with api management or
> without api management. yes, for the GRreg (in built apis), manageAPIs will
> be always true.
>
> Regards,
> Dinusha.
>
>>
>> Thanks!
>> Ragu
>>
>>
>>
>>
>>
>>
>> On Tue, Jun 18, 2013 at 12:31 PM, Dinusha Senanayaka <[email protected]>wrote:
>>
>>> Hi Ragu,
>>>
>>> We have wrote a Tomcat Valve which will be act as interceptor for all
>>> incoming requests. There was a need of using
>>> Axis2ConfigurationContextObserver to get the throttling related properties,
>>> which cannot be done through the CXF hander in GREG REST API. This tomcat
>>> valve can be used not only by the GReg, also from any other product like
>>> AS, DSS when it comes to manage APIs.
>>>
>>> Also we have been working on, getting publisher and store jaggery apps
>>> into Greg. It was not straight forward because just putting these apps into
>>> GReg wont work. We had do some code changes in apimgt side to avoid synapse
>>> dependencies. As an example, api-store and publisher need to have
>>> apimgt-impl component been activated and while this module getting
>>> activated we are creating the tenant artifacts by coping  synapse.xml files
>>> into synapse deployment directories of tenants. We had to customize apimgt
>>> code that it can identify the where api management is doing and avoid these
>>> synapse related tasks.
>>>
>>>
>>> On Tue, Jun 18, 2013 at 9:43 AM, Sriragu Arudsothy <[email protected]>wrote:
>>>
>>>> Hai Dinusha and Lakmali,
>>>>
>>>>                                     Please update this mail thread that
>>>> what have you done so far  regarding the "Lightweight API manager
>>>> component".
>>>>
>>>> 1) Please let me know the strategy that you are using when integrate
>>>> the external API manager instance.
>>>>
>>>> 2) when an API manager instance  externally running,  Do we need to
>>>> call the API published at the API gateway? or Does the user call the
>>>> Registry REST API and re-directing the URL to API gateway URL?
>>>>
>>>> 3) If it is a lightweight APIM component which resides within G-Reg,
>>>> Will the request be given to Registry REST API ?
>>>>
>>> Answering to the Q 1, 2, 3:
>>>  Always user request will be to the G-Reg API. If the <ManageAPIs> is
>>> enabled then API Management will be handle through the embedded apimgt
>>> components. And If <ManageAPIs> enabled and if it has been provided
>>> <Store>, <Publisher>, <Gateway>, <KeyManager> urls, then request will be
>>> redirect to the external api manager. Always, request will be first hit at
>>> the tomcat valve that we have added, logic will be reside in this valve ,
>>> how api management is handling, whether inbuilt, external or without api
>>> management.
>>>
>>> Regards,
>>> Dinusha.
>>>
>>>>
>>>> What has to be done to complete it ?
>>>>
>>>> Because  the Greg has a strict dead line to finish off by next week ?
>>>>
>>>> Thanks!
>>>> Ragu
>>>>
>>>>
>>>>
>>>>
>>>> On Mon, Jun 10, 2013 at 6:31 PM, Sriragu Arudsothy <[email protected]>wrote:
>>>>
>>>>> Hai Sanjeewa..!
>>>>>
>>>>>                          We are having a strategic discussion that how
>>>>> to include the API publisher/ store jag apps to other products. Therefore,
>>>>> I will update this thread after the discussion...! As far as I understand,
>>>>> there will be single interceptor which decides the processing path
>>>>> according to the <manageAPIs> property value.
>>>>>
>>>>> Thanks!
>>>>> Ragu
>>>>>
>>>>>
>>>>> On Mon, Jun 10, 2013 at 6:03 PM, Sriragu Arudsothy 
>>>>> <[email protected]>wrote:
>>>>>
>>>>>> Hai Lakmali..!
>>>>>>
>>>>>>                        Yes,  the above link does not work...! I moved
>>>>>> the user token generation menu under the "Resources" menu in order to
>>>>>> appear for Greg. Therefore the existing doc won't work. Also these 
>>>>>> changes
>>>>>> have not yet been committed. I will give you , the locally built latest
>>>>>> Greg 4.6.0 pack which has every thing. You can also try out some samples.
>>>>>> When you get the access token via that option , that access token will be
>>>>>> based on "Client_Credentials" grant type.  Since the API store jag app 
>>>>>> will
>>>>>> be there anyway to incorporate the light weight APIM component. Therefore
>>>>>> the users are required to generate the access token via store when the
>>>>>> <manage APIs> property set to true. Therefore I have to update the doc 
>>>>>> for
>>>>>> generating the access token for either <manageApis> property set to true 
>>>>>> or
>>>>>> false.
>>>>>>
>>>>>> I will update the Doc as quickly as possible.
>>>>>>
>>>>>> Thanks!
>>>>>> Ragu
>>>>>>
>>>>>>
>>>>>> On Mon, Jun 10, 2013 at 4:45 PM, Sanjeewa Malalgoda <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Mon, Jun 10, 2013 at 4:08 PM, Dinusha Senanayaka <
>>>>>>> [email protected]> wrote:
>>>>>>>
>>>>>>>> Hi All,
>>>>>>>>
>>>>>>>> This is what we are going to add from the APIM side.
>>>>>>>>
>>>>>>>> 1) We will be exposing current api manager handlers related
>>>>>>>> functionalities as some common packages. So this bundle can be included
>>>>>>>> into any of products to get API Management without using external API
>>>>>>>> Manager. (i.e APIAuthenticationHandler, APIThrottleHandler and
>>>>>>>> APIMgtUsageHandler)
>>>>>>>>
>>>>>>>> 2) There will be a new parameter added to carbon.xml to check
>>>>>>>> whether APIManagement is enable or not.
>>>>>>>> <ManageAPIs>true/false<ManageAPIs>
>>>>>>>>
>>>>>>>> 3) There will be a interceptor which hit first and invoke the API
>>>>>>>> Management functionalities when the above parameter is set to true.
>>>>>>>> Depending on the service type, aixs2 or registry api etc, this 
>>>>>>>> interceptor
>>>>>>>> may vary.
>>>>>>>> When this comes to registry, we can call this api-management
>>>>>>>> functionalities that we are going to expose through new package from 
>>>>>>>> the
>>>>>>>> JAXWS web app that Ragu has created to expose the registry api. Since
>>>>>>>> generic store feature is not going to release with the up coming 
>>>>>>>> registry
>>>>>>>> release, we may need to include APIM Store jaggery app as well in to 
>>>>>>>> GReg.
>>>>>>>>
>>>>>>> Just to clarify. With this model where we can create
>>>>>>> APIs, subscriptions and generate tokens? Do we provide some UI 
>>>>>>> capability
>>>>>>> for this? Do we have single interceptor which handles all requests?
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Sanjeewa.
>>>>>>>
>>>>>>>
>>>>>>>> Regards,
>>>>>>>> Dinusha.
>>>>>>>>
>>>>>>>>
>>>>>>>> On Mon, Jun 10, 2013 at 11:41 AM, Sriragu Arudsothy <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>>> Hai Lalaji, Dinusha..!
>>>>>>>>>
>>>>>>>>>                                  We have had a discussion about
>>>>>>>>> the Light weight APIM component for other wso2 products as well as 
>>>>>>>>> How to
>>>>>>>>> fit that to the Registry REST API. According to the last discussion 
>>>>>>>>> with
>>>>>>>>> Lalaji, Dinusha and Lakmali We derived some points which I would like 
>>>>>>>>> to
>>>>>>>>> mention..! Still there is some ambiguity at the APIM side.
>>>>>>>>>
>>>>>>>>> 1) The current implemetation of the registry REST API requires the
>>>>>>>>> APIM has to be running as a separate instance while having a 
>>>>>>>>> configuration
>>>>>>>>> file (.xml) has the API manager url endpoints in it. The above config 
>>>>>>>>> file
>>>>>>>>> was located at the Greg_Home/repository/conf.
>>>>>>>>>
>>>>>>>>> 2) The light weight API manager component will reside at the Greg.
>>>>>>>>>  The flow of request goes as below,
>>>>>>>>>
>>>>>>>>> Rest Client request-----> Request filter/Some filter mechanism
>>>>>>>>> ------>light weight APIM ------> Registry REST API ---->Response back 
>>>>>>>>> to
>>>>>>>>> Client.
>>>>>>>>>
>>>>>>>>> The above path will be executed if the APIM enabled property set
>>>>>>>>> to true at the config file...!
>>>>>>>>>
>>>>>>>>> Otherwise it request filter assumes that the request should be
>>>>>>>>> processed without APIM. Request filter executes the OAuth validation 
>>>>>>>>> logic
>>>>>>>>> at the Greg REST API and proceeds to resource . Therefore the Request
>>>>>>>>> filter will be functioning as a centralized routing element decides 
>>>>>>>>> whether
>>>>>>>>> the request to be processed via light weight APIM comp or alone at 
>>>>>>>>> the Greg
>>>>>>>>> REST API.
>>>>>>>>>
>>>>>>>>> @Lalaji and Dinusha please add  anything if I miss anything.
>>>>>>>>>
>>>>>>>>> Thanks!
>>>>>>>>> Ragu
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Thu, Jun 6, 2013 at 12:01 PM, Sriragu Arudsothy <
>>>>>>>>> [email protected]> wrote:
>>>>>>>>>
>>>>>>>>>> Hai All,
>>>>>>>>>>
>>>>>>>>>>            First of all, I will explain the architecture of the
>>>>>>>>>> REST API implementation. The Registry REST API has two mode of
>>>>>>>>>> functionality.
>>>>>>>>>>
>>>>>>>>>> 1) Standalone mode -
>>>>>>>>>>
>>>>>>>>>> Straight access to Registry REST API. This has been done and
>>>>>>>>>> working fine. In this case Registry provide a way to generate the 
>>>>>>>>>> OAuth
>>>>>>>>>> Access token  for users to access the resources. Therefore the REST 
>>>>>>>>>> calls
>>>>>>>>>> can be made from any REST client with an access token to access the
>>>>>>>>>> resources.
>>>>>>>>>>
>>>>>>>>>> 2) With API Manager Mode -
>>>>>>>>>>
>>>>>>>>>> This means the access to Registry REST API with the Externally
>>>>>>>>>> running API manager instance. In here, the admin or any responsible 
>>>>>>>>>> person
>>>>>>>>>> will publish the REST API via API publisher. Therefore the REST API 
>>>>>>>>>> would
>>>>>>>>>> be available for subscriber / endusers. Once the access token has 
>>>>>>>>>> been
>>>>>>>>>> generated, user will be able to access the  Registry Resources.
>>>>>>>>>>
>>>>>>>>>> In this mode, There are 2 ways in which I have implemented the
>>>>>>>>>> REST API invocation process. This is explained as below.
>>>>>>>>>>
>>>>>>>>>> 1 >> REST client ----> API gateway(REST API published at the
>>>>>>>>>> APIM) ---->Registry REST API ----> Registry Resource ----> Response 
>>>>>>>>>> go to
>>>>>>>>>> REST client.
>>>>>>>>>>
>>>>>>>>>> The above implementation works fine.
>>>>>>>>>>
>>>>>>>>>> 2 >> REST Client -----> Registry REST API ----> Call the REST
>>>>>>>>>> endpoint at the APIM ----> return call from APIM to Registry REST 
>>>>>>>>>> API ---->
>>>>>>>>>> Registry Resource ----> Response back to REST client.
>>>>>>>>>>
>>>>>>>>>> The above approach, I have the an issue to pass the payload from
>>>>>>>>>> Registry REST API to APIM. I have designed the REST API in CXF/ 
>>>>>>>>>> JAx-Rs. The
>>>>>>>>>> apache CXF Jax-Rs implementation provide a Request Handler which is 
>>>>>>>>>> an
>>>>>>>>>> interceptor for the incoming requests. Therefore any request made 
>>>>>>>>>> from REST
>>>>>>>>>> client to Registry REST API will hit the Request Handler First.
>>>>>>>>>>
>>>>>>>>>> Therefore, when the request go to the handler, it will check
>>>>>>>>>> whether the request comes from APIM or Straight from the Client. If 
>>>>>>>>>> it
>>>>>>>>>> comes from the client it will call the REST API endpoint at the APIM 
>>>>>>>>>> via an
>>>>>>>>>> apache HttpClient. Therefore when I call it, I have to extract the 
>>>>>>>>>> access
>>>>>>>>>> token, queryParam, payload..etc from REST client's request and add 
>>>>>>>>>> it to
>>>>>>>>>> the request given to APIM. But I am able to extract the access token,
>>>>>>>>>> queryparam and add it to HttpMethod and call the APIM. Request 
>>>>>>>>>> Handler
>>>>>>>>>> seems that does not have a way to extract the payload ( POST/PUT).
>>>>>>>>>> Therefore unable to pass the payload to the REGISTRY REST API. That 
>>>>>>>>>> is why
>>>>>>>>>> GET and DELETE requests are working fine in the second approach 
>>>>>>>>>> since those
>>>>>>>>>> do not require the payload. BUT POST/PUT requests fail to proceed.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Therefore The CXF JAX-RS Request Handler has both the Standalone
>>>>>>>>>> Mode and APIM mode execution. Therefore the standalone mode is 
>>>>>>>>>> working
>>>>>>>>>> fine. But Which approach to be selected regarding the APIM mode to 
>>>>>>>>>> put it
>>>>>>>>>> in the request handler class. Since there is an issue in Approach 2 
>>>>>>>>>> @ APIM
>>>>>>>>>> mode, It went to approach 1. According to the approach 1 the code 
>>>>>>>>>> will be
>>>>>>>>>> cleaner than approach 2.
>>>>>>>>>>
>>>>>>>>>> *According to Approach 1 @APIM mode the example Request URL will
>>>>>>>>>> be,*
>>>>>>>>>>
>>>>>>>>>> http://{ipaddress}:8280/{REST API context
>>>>>>>>>> @APIM}/{version}/comments?path=/sample.xml.
>>>>>>>>>>
>>>>>>>>>> *in Standalone mode:
>>>>>>>>>> *
>>>>>>>>>> http:{IP address}:{greg http port}/{rest api context @
>>>>>>>>>> greg}/comments?path=/sample.xml.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> The APIM team already given their words to derive an integrate
>>>>>>>>>> able APIM solution for other WSO2 products. Meanwhile we heard that 
>>>>>>>>>> APIM
>>>>>>>>>> team working on that too.
>>>>>>>>>>
>>>>>>>>>> Few days ago, Had a chat with APIM guys, They said that API
>>>>>>>>>> publisher and API store will be there as it is. Therefore whoever 
>>>>>>>>>> wants to
>>>>>>>>>> publish an API have login to the API publisher and publish an API. 
>>>>>>>>>> This can
>>>>>>>>>> not be done automatically during the server starts up.
>>>>>>>>>>
>>>>>>>>>> This is all about the integration part of REST API with API
>>>>>>>>>> Manager. @APIM please let us know the current stage of your solution.
>>>>>>>>>>
>>>>>>>>>> Thanks!
>>>>>>>>>> Ragu
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Dinusha Dilrukshi
>>>>>>>> Senior Software Engineer
>>>>>>>> WSO2 Inc.: http://wso2.com/
>>>>>>>> Mobile: +94725255071
>>>>>>>> Blog: http://dinushasblog.blogspot.com/
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Architecture mailing list
>>>>>>>> [email protected]
>>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> *
>>>>>>> *
>>>>>>> *Sanjeewa Malalgoda*
>>>>>>> WSO2 Inc.
>>>>>>> Mobile : +94713068779
>>>>>>>
>>>>>>>  <http://sanjeewamalalgoda.blogspot.com/>blog
>>>>>>> :http://sanjeewamalalgoda.blogspot.com/<http://sanjeewamalalgoda.blogspot.com/>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>>
>>> --
>>> Dinusha Dilrukshi
>>> Senior Software Engineer
>>> WSO2 Inc.: http://wso2.com/
>>> Mobile: +94725255071
>>> Blog: http://dinushasblog.blogspot.com/
>>>
>>
>>
>
>
> --
> Dinusha Dilrukshi
> Senior Software Engineer
> WSO2 Inc.: http://wso2.com/
> Mobile: +94725255071
> Blog: http://dinushasblog.blogspot.com/
>
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to