Extensibility tutorial
The tutorial guides you through the creation of a custom URL endpoint that handles the approval and rejection of generic requests. To follow along, you need to be familiar with Java and Domino.
Future versions and breaking changes
Although the goal is for Java extensibility APIs to remain stable over time, their details are more likely to change between major versions compared to the published REST API endpoints. Be sure to review the release notes for any version changes that might impact Java extensions.
Set up the Maven Java project
The first step is to set up the Java project. It will use a published parent project and libraries installed with your Domino REST API installation.
Create OpenAPI specification
The second step is to create an OpenAPI 3.0.x specification. It can be done using Notepad, but you want to use available tooling. You can use Swagger Editor, Redhat's Apicurio, or APIGit.
Create the config.json
Domino REST API is driven by a dynamic configuration. To get your extension recognized, you must provide the information what verticle will run your code and what classes implement your business logic. To do so, a file resources/config/config.json is required.
Implement business logic
To implement the functionality, two Java classes are involved. One is a handler class that takes in the http request and forwards it on the Eventbus. The other is a dbrequest class that performs the database interaction.
For the most common use case of JSON in/out, the default handler performs all the necessary actions, no custom code is required.
Access Control
Domino REST API follows Domino's access control with no exceptions. However, you can further tighten the security to be very specific on individual access requirements.
Deployment
Setting up a devcontainer
This step is strictly optional. It can, after the initial setup steps, improve your developer experience by creating a well-known development environment.