This site contains the documentation that is relevant to older WSO2 product versions and offerings.
For the latest WSO2 documentation, visit https://wso2.com/documentation/.

Publish and Invoke a SOAP API

WSO2 API Cloud supports the management of both REST and SOAP APIs. In this tutorial, we create and publish an API with a SOAP endpoint and then invoke it using integrated and external tools.

In this tutorial, you create and publish an API with a SOAP backend and then invoke it using the integrated API Console and a third-party tool (SOAP UI).

See the following topics for a description of the concepts that you need to know when invoking an API:

Let's get started. See the video tutorial here or a step-by-step walk-through of the video tutorial below.

Here's a step-by-step walk-though of the video tutorial:

  1. Log in to the API Publisher and click ADD NEW API.
  2. Select the option to design an API with an existing SOAP endpoint, give the endpoint URL and click Start Creating.
    We use the WSDL http://ws.cdyne.com/phoneverify/phoneverify.asmx?wsdl from CDYNE as the endpoint here, but you can use any SOAP backend of your choice.
  3. The Design tab of the API opens. Give the information in the table below and click Implement to proceed to the implementation phase.

    Field
    Sample value
    NameSoapTest
    Context

    /soaptest

    Version1.0

  4. Click the Managed API option.
  5. Select Endpoint type as HTTP/SOAP endpoint, provide the production endpoint, which is http://ws.cdyne.com/phoneverify/phoneverify.asmx in this example, and click Manage.

    Alternatively, in the implementation stage, you can deploy the API as a prototype. APIs are deployed as Prototypes for testing purposes. If you deploy the API as a prototype, you will be able to invoke the API without subscriptions. Refer Create a Prototyped API with an Inline Script for more information on deploying APIs as prototypes.

    For additional information see Enabling CORS for APIs and Adding Mediation Extensions.
    For additional information on API Endpoint Security, see API Endpoint Security.

  6. In the Manage tab, select the Gold tier, scroll down and click Save and Publish.

    If you want to add scopes to resources, click Add Scopes and specify the scopes you want to add. If you specify a scope, be sure to use the same scopes when generating an access token for the subscribed application and invoking the API. For more information on working with the scopes, see OAuthscopes.




    You have now published the SOAP API to the API Store. Let's subscribe to it.

    Note that when creating this API, under Advanced Throttling Policies we are keeping the default which is Apply per Resource. For more information on setting Advanced Throttling Policies refer Enforcing Throttling and Resource Access Policies.



  7. When prompted, choose to open the newly published API in the API Store.

    Alternatively you can Login to the store and see the newly created API. Click on the newly published API.

  8. The SoapTest API opens. Select an application (e.g., DefaultApplication), the Gold tier and subscribe to the API.
  9. Click the APPLICATIONS menu and click the Production Keys tab. If you have an access token already generated, scroll down and click Re-generate. By default, access tokens expire an hour after creation, unless you change the expiration time.

    You have now subscribed to an API in the API Store. Let's invoke it using the SOAP UI.
  10. Download the SOAP UI installation that suits your operating system from https://www.soapui.org/downloads/soapui.html and open its console.
  11. In the SOAP UI, right click on the Projects menu and create a new SOAP project.
  12. Give your API's WSDL and click OK. In this case, the WSDL is http://ws.cdyne.com/phoneverify/phoneverify.asmx?wsdl.
  13. The WSDL defines two operations. Let's work with CheckPhoneNumber. Double click Request 1. As this API is protected by OAuth, add an authorization header to your request by clicking the add sign on the Header tab of the console.

  14. Add the following values and submit the request:

    1. Give the value of the Authorization header that you added in the previous step as 'Bearer <the access token in step 9>.

    2. Change the endpoint in the SOAP UI to the production URL of the API. You can copy the production URL from the API's Overview tab.

    3. Give any value (say 18006785432) as the PhoneNumber and 0 as the LicenseKey.

  15. Note that the response appears in the SOAP UI. 

    You have invoked the API using a SOAP client. Let's invoke the same API using the integrated Swagger console in the API Cloud.

  16. Back in the API Store, click the API to open it and go to its API Console tab.
     
  17. Expand the POST method, enter the following, and invoke the API. 

    SOAP Request
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:quer="http://ws.cdyne.com/PhoneVerify/query">
       <soapenv:Header/>
       <soapenv:Body>
          <quer:CheckPhoneNumber>
             <!--Optional:-->
             <quer:PhoneNumber>18006785432</quer:PhoneNumber>
             <!--Optional:-->
             <quer:LicenseKey>0</quer:LicenseKey>
          </quer:CheckPhoneNumber>
       </soapenv:Body>
    </soapenv:Envelope>
    SOAP Actionhttp://ws.cdyne.com/PhoneVerify/query/CheckPhoneNumber

  18. Note the API response that appears on the console.
     

In this tutorial, you have created an API with a SOAP backend and invoked it using both the integrated Swagger API Console in the API Cloud as well as an external tool.