Custom connectors

This page provides an overview of the custom connectors feature in Integration Connectors, and assumes that you are familiar with the following concepts:

The custom connectors feature, lets you use connectors that aren't a part of the standard connectors provided by Integration Connectors. For example, you might have an in-house Human Resource Management System (HRMS) with a proprietary connectivity protocol, that you want to expose to Application Integration through a connector. The custom connector feature is useful in the following scenarios:

  • Built-in connectors aren't available in Integration Connectors for a data source or service that you want to connect.
  • Built-in connectors available in Integration Connectors, but they don't meet your requirements.

How Integration Connectors supports a custom connector?

Integration Connectors supports custom connectors through Open API specification (version 3.0.0 and all it's minor versions). You can expose your backend as a public endpoint, and then use your endpoint's Open API specification to create a new connector that connects to your endpoint (backend).

An endpoint's Open API specification defines the contract between Integration Connectors and the endpoint. Integration Connectors uses the API specification to generate the connector's actions and entities. The API specification can be a JSON or a YAML. The following is an excerpt from a sample Open API specification of a backend service:

{
"openapi":"3.0.2",
"info":{
	"title":"Swagger Petstore - OpenAPI 3.0",
	"description":"This is a sample Pet Store Server based on the OpenAPI 3.0 specification.
  You can find out more about\nSwagger at [
	http://swagger.io](http://swagger.io). In the third iteration of the pet store,
	we've switched to the design first approach!\nYou can now help us improve the API whether
  it's by making changes to the definition itself or to the code.\nThat way,
	with time, we can improve the API in general, and expose some of the new
  features in OAS3.\n\nSome useful links:\n-
  [
	   The Pet Store repository
	]
.....
.....
"paths":{
"/pet/{petId}/uploadImage":{
  "post":{
    "tags":[  
},
.....
.....  
"/pet/findByStatus":{
  "get":{
    "tags":[
      "pet"
    ],
.....
.....  
},
"api_key":{
  "type":"apiKey",
  "name":"api_key",
  "in":"header"
}
}
}
}

To view the complete sample specification, see Sample pet store repository. Suppose you use this sample specification to create a custom connector, Integration Connectors will generate a separate action for each element in path. For example, uploadImage and findByStatus would be listed as supported actions by the custom connector.

Backend connectivity scenarios

Integration Connectors supports custom connectors for the following backend connectivity scenarios:

  • Direct backend connectivity
  • Indirect backend connectivity

Scenario - Direct backend connectivity

In this scenario, the Integration Connectors runtime directly establishes connectivity to your Open API compliant backend. The following illustration shows the connector connectivity in this scenario:

direct backend connectivity

Scenario - Indirect backend connectivity

In this scenario, the Integration Connectors runtime establishes connectivity to your backend through an intermediary (facade) service that is Open API compliant. The intermediary service in turn connects to your backend. The following illustration shows the connector connectivity in this scenario:

indirect backend connectivity

What's next

Understand how to create a custom connector.