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  

Description

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.

Examples

The following Endpoints are provided with the default Catalog out of the box:

RESTful CRUD Endpoint

OpenSearch Endpoint