Connector architecture and components
As a developer, it is important to understand the architecture and components of a connector before building your own.
Components
The primary components of any connector built using the Connector SDK include the following:
- Connector descriptor file — (Required) The connector package that is uploaded to the Boomi Enterprise Platform contains the connector descriptor file (
connector-descriptor.xml). This is an XML file containing all of the relevant configuration for the and describes the capabilities of a connector, such as:- Connection fields.
- Available operations, and the fields for each operation.
- Help text for the fields in the connection and operations.
- A Test Connection button available in the connection.
- Document properties to extend the connector configuration information, such as fileName, fileKey, or folder.
- Tracked properties to list the available fields for a connector that a user can set or reference in various shape parameters.
- Connector configuration file — (Required) The connector configuration file (
connector-config.xml) is an XML file that is used to bootstrap the connector loading process within a Runtime and contains all of the relevant information for the runtime. Of particular importance, the connector configuration file includes the class name for the Connector implementation class and the target version of the Connector SDK. This file can also specify optional information such as cookie scope. - Connector implementation — (Required) The Connector provides the main entry point into the connector implementation. This interface exposes the ability for the Atom to initialize the connector, as well as request operation objects and browsers. Each connector must have exactly one Connector implementation, and the connector class name, including the package, is specified in the connector configuration file.
- Connection — (Optional) The Connection implements common behavior that is required to interact with your connection target (the service). This can include handling authorization credentials for an API that can be reused across different operations, and also include common code for making an HTTP request, parsing XML or JSON, etc.
- Browse — (Optional) The main purpose of implementing Browse is to connect to a target service, gather metadata about the service, and convert the metadata into request and response profiles used by a process. Connectors do not have to support browse. However, if any operation supports them, the connector must have at least one Browse implementation.
- One or more Operations — (Required) The Operation implementation uses the Connection to retrieve data from the service. The data can then be processed and added to the Connector's response. The operation is executed when the Connector shape is executed in a process. The semantics of each operation will vary, but in general the documents passed into the Connector shape are provided to the operation as input, and the operation is expected to provide a response for every input.
Key classes
Interfaces you should implement
When building a connector, you should implement the following interfaces:
- Connector — A Connector (see the Javadocs) is the central class for controlling how the Atom interacts with some external service.
- Operation (one or more) — An Operation (see the Javadocs) runs a connector operation on a service.
- (Optional) Connection — A Connection (see the Javadocs) interacts with the target service.
- (Optional) Browser — A Browser (see the Javadocs) queries metadata about a service.
- Payload — A Payload (see the Javadocs) encapsulates result data in some form. Either the data is readily available as an InputStream, or can be written into an OutputStream.
- ExtendedPayload — An ExtendedPayload (see the Javadocs) allows you to provide PayloadMetadata for the payload.
Interfaces you should NOT implement
When building a connector, you should not implement the following interfaces because they are provided. See the Javadocs (SDK Javadocs), Non-SDK Javadocs for PayloadMetadata and PayloadMetadataFactory for more information.
| Operation Interfaces | Other Interfaces |
|---|---|
| OperationType OperationRequest OperationContext OperationResponse OperationStatus | ObjectTypes ObjectDefinitions BrowseContext TrackedData PayloadMetadata PayloadMetadataFactory ObjectDefinitionRole AtomContext BrowseContext |
Was this topic helpful?