Hi All, What's the status of this now? Do we have a working use case to be reviewed? We might need to finalize & test within next few days.
Regards, Vijitha. On Thu, Jun 20, 2013 at 11:20 AM, Dinusha Senanayaka <[email protected]>wrote: > Hi Ragu, > > On Thu, Jun 20, 2013 at 10:52 AM, Sriragu Arudsothy <[email protected]>wrote: > >> 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 ? >> > > We are still working on supporting externally running API Manager > instance. Will try to finish this by EOT.. But you can use inbuilt api-mgt > support to test registry REST API. > We have some concerns regarding the registry REST API; > 1. We need to have versioning support there. In the current API does not > have the versions support.. > 2. We need to pass both userName and tenantId as query params, if some > user need to use the registry REST API. Having the user name is fine, but > tenantId is something external users don't know. So having to pass tenantId > to invoke rest API is not correct as we see. > eg : > http://localhost:9763/resource/comments?path=/_system/governance/apimgt/apiconf.xml& > *username=admin&tenantid=-1234 * > > Regards, > Dinusha. > >> >> 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/ >>> >> >> > > > -- > Dinusha Dilrukshi > Senior Software Engineer > WSO2 Inc.: http://wso2.com/ > Mobile: +94725255071 > Blog: http://dinushasblog.blogspot.com/ > > _______________________________________________ > Dev mailing list > [email protected] > http://wso2.org/cgi-bin/mailman/listinfo/dev > > -- Vijitha Kumara Senior Software Engineer; WSO2, Inc.; http://wso2.com/ email: [email protected] Lean . Enterprise . Middleware
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
