The REST module

rest is a top-level Maven module that puts a JAX-RS API in front of the engine, for callers that cannot embed the Hop libraries the way the SDK does.

Layout

org.apache.hop.rest.Hop

The process-wide holder: variables, logging and the MultiMetadataProvider the resources work against. It is what turns the engine into something a request can be served from.

org.apache.hop.rest.v1.HopApplication

The JAX-RS Application, and the reason every path is under a versioned root.

org.apache.hop.rest.v1.resources

The resources themselves:

Path What it covers

/execute

Running a pipeline or workflow, synchronously or otherwise.

/metadata

Listing metadata types, listing and reading elements, saving and deleting them.

/location

Execution information locations: registering executions, listing them, reading one back.

/plugins

What the running instance has loaded.

Request and response bodies are plain Java objects serialized with Jackson, in resources/execute and resources/location.

This page is a scaffold. Still to write:

  • Running the module: how it is deployed, on which container, and how it is configured.

  • The endpoint reference, or a pointer to a generated one — request and response shapes per path.

  • Authentication and authorization, and how they relate to Hop Server’s.

  • How this relates to the servlets on Hop Server: which one to use when, and whether they overlap.

  • Adding a resource: where it goes, and what has to be registered.

  • Versioning: what v1 commits the project to.