components that accept external requests and interface with internal components, normalizing the request and denormalizing the response |
@startditaa endpoint_architecture.png +------------------------------------------------------------+ | /-=-----------------\ | | | Clients | | | \-------------------/ | | | | | v | | /-------------------\ | | |c369Endpoints | | | +------------+------+ | | |cDEF |cDEF | | | | Operations | Data | | |/---------------+------------+------+------------+---------\| ||cDEF |cDEF |cDEF |cDEF || || Transformers | | Federation | Sources || |+---------------+ Catalog Framework +------------+---------+| ||cDEF | |cDEF Eventing || || Catalog | +------------+---------+| || Plugins | |cDEF Resources || |\---------------+-------------------+----------------------/| | |cDEF | | | | Catalog Provider | | | \-------------------/ | +------------------------------------------------------------ @endditaa |
Endpoints act as a proxy between the client and the Catalog Framework. Endpoints expose the client to the Catalog Framework.
Endpoint interface formats/protocols can include a variety of formats, including (but not limited to):
The Endpoint may transform a client request into a compatible Catalog format and then transform the response into a compatible client format. Endpoints may use Transformers to perform these transformations. This allows an endpoint to interact with Source(s) that have different interfaces. For example, an OpenSearch Endpoint can send a query to the Catalog Framework which could then query a federated source that has no OpenSearch interface.
Endpoints are meant to be the only client-accessible components in the Catalog.
The following Endpoints are provided with the default Catalog out of the box: