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.
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:
- Log in to the API Publisher and click ADD NEW API.
- 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.
The Design tab of the API opens. Give the information in the table below and click Implement to proceed to the implementation phase.FieldSample value
Name SoapTest Context
- Click the Managed API option.
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.
In the Manage tab, select the
Goldtier, scroll down and click Save and Publish.
If you wish to add scopes to resource got created, click on add scopes and specify the scopes you want to add. If you specify a scope, you need to use the same scope when generating access token for the subscribed application and when invoking the API. Refer OAuthscopes for more information on working with the scopes.
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 Enforce Throttling and Resource Access Policies.
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.
- The SoapTest API opens. Select an application (e.g., DefaultApplication), the Gold tier and subscribe to the API.
- 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.
- Download the SOAP UI installation that suits your operating system from https://www.soapui.org/downloads/soapui.html and open its console.
- In the SOAP UI, right click on the Projects menu and create a new SOAP project.
- Give your API's WSDL and click OK. In this case, the WSDL is http://ws.cdyne.com/phoneverify/phoneverify.asmx?wsdl.
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.
Add the following values and submit the request:
Give the value of the Authorization header that you added in the previous step as 'Bearer <the access token in step 9>.
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.
Give any value (say 18006785432) as the
PhoneNumberand 0 as the
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.
- Back in the API Store, click the API to open it and go to its API Console tab.
Expand the POST method, enter the following, and invoke the API.
SOAP Request SOAP Action http://ws.cdyne.com/PhoneVerify/query/CheckPhoneNumber
- 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.