We embraced the controller-service model for all REST components: The web server maps a specific route to a specific controller, which itself does nothing other than handling the request and response data, it does not contain any business logic. All of that is separated into service managers.
Also, recognizable for all methods suffixed with -Docs in the controllers, is that our OpenAPI documentation, is configured and fed in-code, directly beneath the actual code. Having the code and it’s documentation nearly makes it very easy to maintain this documentation, e.g. to keep it up-to-date when the code changes, which can be forgotten easily if it was in external configuration files with special syntax.
The client REST API is still in beta testing.
Currently it is recommended to include the JVM client library as a dependency using Maven or Gradle.
Please let us know if you are interested in using the client in non-JVM languages, so we can prioritize this feature accordingly.
Data models for data requests (serialized to and from JSON):
The rest API is largely defined by the service provider.
It simply has to adhere to:
having at least one POST endpoint
with the DataResponse
as request body
Method | Route | Description |
---|---|---|
GET
/api-routes
Shows a simple routing table
GET
/api-documentation
Contains the OpenAPI documentation/definition
GET
/swagger
Shows a Swagger API interface
GET
/redoc
Shows a ReDoc API interface
POST
/edvs
Create a EDV
POST
/edvs/{edv-id}/docs
Create a document in an EDV
POST
/edvs/{edv-id}/docs/search
Perform an encrypted search
GET
/edvs/{edv-id}/docs/{doc-id}
Retrieve a specific document
PATCH
/edvs/{edv-id}/docs/{doc-id}
Update a specific document
DELETE
/edvs/{edv-id}/docs/{doc-id}
Delete a specific document
GET
/capabilities
Displays the capabilities of a server
GET
/configuration
Displays the configuration of a server
WEBSOCKET
/edvs/{edv-id}/notifications
Interact with the notification API