Overview

Documentation on the REST APIs.

REST APIs

Representing business logic of the application, the REST APIs comprise the set of functionality  needed to completely support the client user interface.  They are well organized-functionally and do not ever refer to each other.  Thus, each service can stand on its own as a collection of functionality to suport some major feature set of the application (e.g. "refset editing", or "release process").

For each REST API there is also a fully-functional client that can be used for integration testing against that service.

 

The REST APIs were designed with some general principles in mind

Internal APIs

Rest APIs are backed by an internal layer of APIs that are "Jpa-enabled".  They actually manage connections to the database, transactions and all the details of adding, updating, and removing objects.
While the REST APIs represent the "business logic layer" of the application, these are the services that actually directly perform the unit operations needed to make the application function.  There is a relative 1-1 correspondence between many of the REST layer APIs and the Jpa layer APIs, but not exactly where REST calls need to be compositions of more complex logic (such as cloning a refset).
Internal APIs follow a hierarchy, so that successive services add functionality to earlier ones.  For example a "translation service" is capable of also handling all calls related to a refset.  Thus, for most REST API calls, only a single service needs to be opened (in addition to the security service) in order to fully handle the call.   This goes a long way to reducing complex transaction and visibility issues when interacting with the database.

Service APIs

Following are individual service APIs (both internal and REST):

References/Links