Tuesday, November 13, 2012

App Factory - Consuming APIs in API Manager

This blog shows how your apps can consume APIs hosted in WSO2 API Manager.

Step 1 : Create a API that gives Washington whether details in sandbox and London whether details in the production environment. Lets call this Weather API. Internally it calls the API of www.worldweatheronline.com






Step 2 : Create an application in AppFactory. Lets call it Customer Portal - cportal application. When you create an application in App Factory it will be automatically created in API-M.



Step 3 : Subscribe the application to the Weather API as follows.


Step 4 : Generate keys by clicking on the create dependencies.



Step 5 : Write your application to get keys by calling the CarbonContext and Registry APIs. The correct sandbox and production keys will be used depending on where the application is deployed. Here is the code to do that.

        CarbonContext cCtx = CarbonContext.getCurrentContext();
        Registry registry = (Registry)       cCtx.getRegistry(RegistryType.SYSTEM_GOVERNANCE);
        Resource resource = registry.get("Key");
        if(resource.getContent() instanceof String){
            key = (String) resource.getContent();
        }else{
            key = new String((byte[]) resource.getContent());
        }
Step 6 : Deploy the application to "Development" environment and view results


Step 7 : Promote the application to "Production" environment and view results.


The results of Development environment  differs from Production environment because the keys that is used by the two environments are different. The programmer is unaware about the sandbox and production keys, and everything is handled underneath.

No comments: