What you'll learn
In this tutorial, you'll learn to:
- Create an Edge API proxy from an OpenAPI Specification.
- Call the API proxy using cURL.
- Add a policy to a conditional flow.
- Test the policy invocation using cURL.
In this tutorial, you'll learn how to create an Edge API proxy from an OpenAPI Specification using the Apigee Edge management UI. When you call the API proxy with an HTTP client, such as cURL, the API proxy sends the request to the Apigee mock target service.
About the Open API Initiative
"The Open API Initiative (OAI) is focused on creating, evolving and promoting a vendor neutral API Description Format based on the Swagger Specification." For more information about the Open API Initiative, see https://openapis.org.
An OpenAPI Specification uses a standard format to describe a RESTful API. Written in either JSON or YAML format, an OpenAPI Specification is machine readable, but is also easy for humans to read and understand. The specification describes such elements of an API as its base path, paths and verbs, headers, query parameters, operations, content types, response descriptions, and more. In addition, an OpenAPI Specification is commonly used to generate API documentation.
About the Apigee mock target service
The Apigee mock target service used in this tutorial is hosted at Apigee and returns simple data. It requires no API key or access token. In fact, you can access it in a web browser. Try it out by clicking the following:
The target service returns the greeting
For information about the full set of APIs the mock target service supports, click on the following:
What you'll need
- An Apigee Edge account. If you don't have an account, you can sign up by following the instructions at Creating an Apigee Edge account.
- An OpenAPI Specification. In this tutorial, you'll use the
mocktarget.yamlOpenAPI Specification which describes Apigee's mock target service,
http://mocktarget.apigee.net. For more information, see
- cURL installed on your machine to make API calls from the command line; or a web browser.
Create the API proxy
To create the API proxy from an OpenAPI Specification:
- Sign in to https://apigee.com/edge.
- Click API Proxies in the main window.
Alternatively, you can select Develop > API Proxies in the left navigation bar.
- Click + Proxy.
- In the Create Proxy wizard, select Reverse proxy (most common) and
click Use OpenAPI.
- Click Import from a URL, enter a name for the OpenAPI Specification, and enter the path to the raw content on GitHub for the OpenAPI
Specification in the URL field:
- Click Select.
- Click Next.
The Details page in the Create Proxy wizard displays. The fields are pre-populated using values defined in the OpenAPI Specification, as shown in the following figure.
The following table describes the default values that are pre-populated using properties in the OpenAPI Specification. An excerpt of the OpenAPI Specification illustrating the properties used is shown following the table.
Field Description Default Proxy Name Name of the API proxy. For example:
titleproperty from the OpenAPI Specification with spaces replaced by dashes
Proxy Base Path Path component that uniquely identifies this API proxy within the organization. The public-facing URL of this API proxy is comprised of your organization name, an environment where this API proxy is deployed, and this Proxy Base Path. For example:
Proxy Name field content converted to all lower case Existing API Target URL invoked on behalf of this API proxy. Any URL that is accessible over the open Internet can be used. For example:
Properties in OpenAPI Specification are combined to create target URL:
https://(depending on the
basePathproperty (if specified)
Description Description of the API proxy.
The following provides an excerpt from the OpenAPI Specification showing the properties that are used to pre-populate the fields.
swagger: '2.0' info: description: 'OpenAPI Specification for the Apigee mock target service endpoint.' version: 1.0.0 title: Mock Target API host: mocktarget.apigee.net schemes: - http - https ...
- Edit the Description field as follows:
API proxy for the Apigee mock target service endpoint.
- Click Next.
- On the Flows page, make sure all operations are selected.
- Click Next.
- On the Security page, select Pass through (none) as the security option, and click Next.
- On the Virtual Hosts page, make sure all virtual hosts are selected and click Next.
- On the Build page, make sure the test environment is selected, and click Build and Deploy.
- On the Summary page, you see an acknowledgement that your new API proxy was created
successfully and deployed to your test environment.
- Click Mock-Target-API to display the Overview page for the API
Congratulations! You've created an API proxy from an OpenAPI Specification. Next you'll test it to see how it works.
Test the API proxy
You can test your
Mock-Target-API API using cURL or a web browser.
In a terminal window, run the following cURL command. Substitute your organization name in the URL.
You should see the following response:
Way to go! You've built a simple API proxy from an OpenAPI Specification and tested it.
Add an XML to JSON policy
Next, you'll add the XML to JSON policy to the View XML Response conditional flow that was generated automatically when you created the API proxy from the OpenAPI Specification. The policy will convert the target's XML response to a JSON response.
First, call the API so that you can compare the results with those received after you add
the policy. In a terminal window execute the following cURL command. You're calling the
/xml resource, which natively returns a simple block of XML.
Substitute your organization name in the URL.
You should see the following response:
<root> <city>San Jose</city> <firstName>John</firstName> <lastName>Doe</lastName> <state>CA</state> </root>
Now let's do something that converts the XML response to JSON. Add the XML to JSON policy to the View XML Response conditional flow in the API proxy.
- Click the Develop tab in the top right corner of the Mock-Target-API
Overview page in the Edge Management UI.
- In the left Navigator pane, under Proxy Endpoints > default, click the View
XML Response conditional flow.
- Click the bottom +Step button, corresponding to the
Response for the flow.
The Add Step dialog opens to display a categorized list of all the policies that you can add.
- Scroll to the Mediation category and select XML to JSON.
- Keep the default values for Display Name and Name.
- Click Add. The XML to JSON policy is applied to the response.
- Click Save.
Now that you've added the policy, call the API again using cURL. Notice that you're still
calling the same
/xml resource. The target service still returns its block of
XML, but now the policy in the API proxy will convert the response to JSON. Make this
Note that the XML response is converted to JSON:
Congratulations! You have successfully tested the execution of a policy added to a conditional flow.