This documentation is for WSO2 App Factory 1.0.0. View documentation for the latest release.
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 32 Next »

The sample is described in the following topics.


Introduction

This sample demonstrates how to invoke yahoo weather API and displays results in a Web application.

Prerequisites

  1. Register and log in to WSO2 App Factory here: https://appfactorypreview.wso2.com/appmgt . See instructions in Getting Started.
  2. Log in to API Publisher (https://apimanager.appfactorypreview.wso2.com/publisher) and add API by the name yahooweather - 1.0.0. Provide the following values in Add New API window.


    For more information on creating an API, see APIs.

You now have a sample API created in App Factory. Let's see how to consume this from your Web app.

Executing the sample

  1. Log in to App Factory portal and click Add New Application to create a new application with the following specifications:

    Name: API-Invoker
    Application Type: Web Application
    Repository Type: Git

    For more information on creating applications, see Creating and Viewing Applications.
  2. Check out the API-Invoker source code using the Git clone command. It's folder structure is as follows:
  3. Replace the WebContent/index.jsp file you find in the above folder structure with the sample index.jsp file found in either <AF_HOME>/samples/API_Invoker directory. You can find the same file here: API_Invoker/API_Invoker/WebContent/index.jsp. 

    This sample index.jsp has the following code segment added
    to get keys by calling the CarbonContext and Registry APIs. The correct sandbox and production keys (consumer key and consumer secret) are used depending on where the application is deployed.

    CarbonContext cCtx = CarbonContext.getCurrentContext();
            Registry registry = (Registry) cCtx.getRegistry(RegistryType.SYSTEM_GOVERNANCE);
        	//curl -v -H "Authorization: Bearer KY7QoTynVZShrfguQGTNPST88X8a" http://apimanager.appfactorypreview.wso2.com:8280/twitter/1.0.0/search.atom?q=wso2  	
            Resource resource = registry.get("dependencies/consumerkey");
            if(resource.getContent() instanceof String){
            	consumerkey = (String) resource.getContent();
            }else{
            	consumerkey = new String((byte[]) resource.getContent());
            }
    		
            resource = registry.get("dependencies/consumersecret");
            if(resource.getContent() instanceof String){
            	secretkey = (String) resource.getContent();
            }else{
            	secretkey = new String((byte[]) resource.getContent());
            }

     
       

  4. After replacing the file, commit the changes to Git repository. 

  5. Next, subscribe to the yahooweather API using the application created above. Steps below cover this:

    • In App Factory portal, select the API-Invoker application.
    • Select the Resources tab from the left panel and scroll down to select APIs section. Then, click Subscribe to APIs.
      The API Manager's storefront opens in a separate window: https://apimanager.appfactorypreview.wso2.com/store. It lists all APIs published to the store.
    • Click the yahooweather - 1.0.0 API you created earlier. Its details opens. Select API-Invoker from Applications drop down and Subscribe.

     
  6. After subscribing, you get options to generate access keys. Generate keys for sandbox and production separately.   
  7. Next, come back to the App Factory podeploy the application to "Development" environment. Launched app look as follows.

   

      # Give APIManager Url (Eg:- http://apimanager.appfactorypreview.wso2.com - must be a HTTP url).

      # Give end point Url of the Yahoo Weather API. (Eg:-  http://apimanager.appfactorypreview.wso2.com:8280/yahooweather/1.0.0 ).

      # Give Username & Password of the logged user.

      # Click on Submit.

  # Response with weather information will be printed as an XML.

8. Promote the application to "Production" environment and view results.

Note: 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 labels