Lilly the Oracle Integration mascot is on the move again, announcing cool new features & capabilities of the upcoming Oracle Integration February 2021 release. In this blog, Lilly will be specifically focusing on the OpenAPI compliance improvements in the Oracle Integration.
OpenAPI is a foundational cornerstone in the digital economy, that is leveraged by almost all modern applications and digital technologies/services for communicating the set of services offered by them digitally, enabling everyone to communicate efficiently in the digital economy. Oracle Integration continues to stride ahead in adopting OpenAPI standards, enabling customers to leverage the specification for the consumption of third-party services as well as to publish the OIC flows in Open API specifications. In this release, Oracle Integration has enhanced publishing and consumption of OpenAPI specifications with multipart requests and headers. Let me take you through the experience of building an Oracle Integration flow that defines REST resource receiving multipart payload and headers in a request, at the same time we will consume the very same OpenAPI specification generated by the Oracle Integration to demonstrate how Oracle Integration sniffs the OpenAPI constructs and generate the options for the Integration developer. To learn more about this feature and capability, refer to this documentation link.
Let's now dive into details of the OpenAPI compliance improvements.
Oracle Integration already supports publishing REST trigger flows in OpenAPI specification, however, OpenAPI specification generated from Oracle Integration did not contain information depicting the resource request as a multipart request. As a result, consuming clients were left unaware about support for multipart request resources. With February 2021 Oracle Integration update, Oracle Integration now generates OpenAPI specification that generates the required constructs for depicting the multipart request.
Let's now take a look at the experience of building a resource with a multipart request through Oracle Integration. As a precursor, I have already created an Oracle Integration flow, and have added a Sample REST connection to the trigger area.
Step 1) As one defines the REST trigger, one needs to turn on the option to configure the request/response payload along with headers, as shown in the below picture.
Step 2) On the "Configure the Request Payload" page, turn on the option "Request is multipart with payload" and media-type as "multipart/form-data" as shown in the below picture.
Step 3) On the "Request Headers" page configure desired standard and custom headers, as shown in the below picture.
Step 4) Save your trigger configuration, design the entire flow as per your requirements. As part of the exercise for demo purposes, I have defined multiple resources that are taking multipart/form-data and multipart/mixed with headers.
Step 5) Let's now activate the flow and take a look at the generated OpenAPI specification. As you hover on the activated integration row and click on the "Play" button, Oracle Integration will prompt you with a Metadata URL. Please click on the URL as highlighted in the picture below.
Step 6) Oracle Integration shall open a tab with the metadata URL, the new page shall prompt you with additional information like flow specification, how to run, etc. Please click on the OpenAPI specification URL to introspect the constructs generated for the selected integration flow.
Step 7) As you click on the OpenAPI URL, Open API specification for the flow shall be rendered. As you can see in the below picture, the OpenAPI specification contains the configured headers as well as required constructs to depict the resource request as a multipart request. Please take note of the URL as we will be using the URL later for creating the connection.
Now let us switch gears and look at how Oracle Integration supports consuming such an OpenAPI specification with the multipart request. As you consume the OpenAPI specification-based URL in the flow, the wizard will automatically decipher and generate the multipart-based request/response payload as depicted by the OpenAPI specification. The REST adapter will also generate the request and response schema with attachments so that the Integration developer can pass/receive the file reference to/from the configured endpoint.
Step 1) Let us first start by creating a connection with the OpenAPI URL, as stated earlier I am using the same Oracle Integration generated OpenAPI URL for the demo purposes. To create the connection one needs to select the connection type as "Open API (1.0/2.0/3.0) URL" as shown in the below picture, provide the OpenAPI URL, provide the desired credentials.
Please take note, "Swagger Definition URL" is not supported for consuming multipart requests, rather it is only supported with "Open API (1.0/2.0/3.0) URL" based connections.
Step 2) As you have created the connection, now let's create a new flow with "App Driven Orchestration", add a trigger configuration using the newly created connection.
Step 3) In the "Basic Info" page, as you give a name to your endpoint please make sure to turn on options "Standard" and "Custom" as shown in the below picture.
Step 4) As you click Next, the configuration wizard will prompt you to select the identified resources and verbs from the OpenAPI specification.
Step 5) As you click Next, the configuration wizard will prompt you to enter the query parameters. As our OpenAPI resource does not have any query parameter we can skip and click the Next button.
Step 6) On the "Request Headers" page, Oracle Integration has deciphered the required constructs and shall prompt the integration developer with identified standard and custom headers.
Step 7) As we are about to save our configuration on the summary page, we can see Oracle Integration has successfully read OpenAPI constructs for multipart/form-data as a request media type as well as published headers.
This concludes the overview of OpenAPI improvements done in the Oracle Integration February 2021 release for OpenAPI compliance. I hope you are excited to learn about the new capabilities and are eagerly waiting to see them on your instance and reap the value from them in your integration processes.