Skip to main content

External Data Adapter Overview

Consumers may need to use their own External Data Provider instead of those supported OOTB by FenX. For these situations, the Fenergo SaaS Platform allows consumers to setup an external adapter which they can host. That Adapter can then be targeted by the FenX application as an External Data Provider. That adapter must implement the agreed interface and will function just like the OOTB External Data Providers.

APIs Referenced
External Data Receptor API
External Data Command API
External Data Query API

High level Architecture

Below is a high level overview of how the External Data Adapter Pattern is implemented, including all the components and how they interact together. If consumers have configured one of the Out of the Box Providers, then the Fenergo SaaS platform connects to that provider. Consumers can choose to implement a custom provider by creating and hosting an External Data adapter of their own which conforms to the specification outlined in the Adapter Contract. Fenergo can call that adapter and interact with a custom External Data Provider. Where callbacks are required, these are done via the External Data Receptor API endpoint. Further details are available in the Open API spec below.

API Resources

The Generic Adapter Interface for External Data can be downloaded here

You can use Swagger to load this JSON file and browse the specification then you can inspect the methods as illustrated below:

The External Data Receptor Swagger can be explored here.

Asynchronous Pattern

We have engineered our External Data functionality in Fenergo to be as extensible as possible, so if you are implementing a custom adapter, it is important to understand explicitly how the programmatic flow works.

All actions on the User Interface or via the External Data Command / Query API calls, result in a generic handler making a call to a specific adapter. That adapter could be one of our supported OOTB services or your own implementation of an adapter.

The important point to note is all the above methods (as you would see in the Swagger Interface) return an asynchronous response of HTTP 202 Accepted (except for an error scenarios). Responses are sent back to the Fenergo Receptor once the request has been processed. The sequence is illustrated below:

What this means from a client / consumer perspective is that your Adapter Implementation must adhere to this same pattern and implement all the methods outlined in the External Data Adapter Contract above.