Expose a formal API for existing application, service, or orchestration

Pattern Definition
Problem | How do I expose a formalized API for existing applications, services, and orchestrations? |
Context | This pattern is applicable when there is a desire to create and expose a formal API to provide ready access to existing applications, services, or orchestrations. |
Forces |
|
Solution | This pattern employs an API Platform to provide access and enforce policies on externally and/or internally available APIs. |
Consequences | Pros:
|
Related Patterns |
Interaction Views
Cloud API Platform Gateway
Expose an API for a Cloud based application or orchestration.

Interactions
- The interface for an application is exposed by the API Platform Gateway.
- The API Platform Gateway exposes a backend Cloud-based application.
- The interface for an application is exposed by the API Platform Gateway.
- The API Platform Gateway exposes a backend Cloud-based orchestration.
Mapping
Amazon Web Services
- API Platform Gateway: Amazon API Gateway
Google Cloud Platform
- API Platform Gateway: Google Cloud Endpoints
Microsoft Azure
- API Platform Gateway: API Management
Open Source
- API Platform Gateway: Gravitee, Kong, Tyk, …
Oracle Cloud Infrastructure
- API Platform Gateway: Oracle API Platform Cloud Service
Notes
- There could be any number of applications, services, or orchestrations exposed by the API Platform Gateway.
On-Premises API Platform Gateway
Expose an API for an on-premises application or orchestration.

Interaction
- The interface for an application is exposed by the on-premise API Platform Gateway.
- The API Platform Gateway exposes a backend on-premises application.
- The interface for an orchestration is exposed by the on-premise API Platform Gateway.
- The API Platform Gateway exposes a backend on-premises orchestration.
Mapping
Amazon Web Services
- API Platform Gateway: N/A
Google Cloud Platform
- API Platform Gateway: N/A
Microsoft Azure
- API Platform Gateway: N/A
Open Source
- API Platform Gateway: Gravitee, Kong, Tyk, …
Oracle Cloud Infrastructure
- API Platform Gateway: Oracle API Platform Cloud Service (Gateway Node)
Notes
- The API Platform Gateway can be deployed on premises while the management of the gateway remains Cloud-based.
- There could be any number of applications, services, or orchestrations exposed by the API Platform Gateway
Cloud Interface Aggregation
Expose an API for a Cloud-based application where the API aggregates multiple calls to the backend application.

Interactions
- The interface for an application is exposed by the application integration platform
- The application integration platform aggregates multiple calls to the Cloud-based application to create the exposed API
Mapping
Amazon Web Services
- Application Integration Platform: N/A – See Note 4
Google Cloud Platform
- Application Integration Platform: N/A – See Note 4
Microsoft Azure
- Application Integration Platform Azure Logic Apps
Open Source
- Application Integration Platform: WS02 Enterprise Integrator, …
Oracle Cloud Infrastructure
- Application Integration Platform: Oracle SOA Cloud Service
- Application Integration Platform: Oracle Integration Cloud
Notes
- There could be any number of calls aggregated to create a higher-level API
- The communication to the application could use native APIs or an adapter
- Some API Gateway services/products support API consolidation, but this is deemed not to be best practice as it violates the single responsibility principle (e.g. potential for business logic bleed). In addition, most API Gateways can not handle complex orchestrations or transformations that may be needed.
- Develop an orchestration service which can be scaled independently of the API gateway (e.g. microservice, AWS Lambda, etc..)