From runtime perspective, each extension is composed of 3 major building blocks:
- API endpoints - running on server (server-side), having access to BellaDati API, REST API and providing methods to connect to 3rd party systems. Programming language is Groovy/Java. Endpoints are accessible over HTTP using HTTP GET, POST, PUT, DELETE methods and have optional support for authentication (oAuth, Basic auth) and session.
Setup of BellaDati-Extension-API dev environment
In your development environment setup following Maven dependency. You can find all available BellaDati-extension-api at https://search.maven.org/artifact/com.belladati/extensions-api
<dependency> <groupId>com.belladati</groupId> <artifactId>extensions-api</artifactId> <version>1.1</version> </dependency>
and follow Usage from GitHub repository https://github.com/BellaDati/belladati-extensions-api.
BellaDati Extension types
There are 4 types of extensions, each targeting different functionality and goal:
New page - generic extension, which gets own URL and can optionally provide API endpoints.Use it when building java web application that is utilizing BellaDati features and expands them with custom business logic
- Custom menu - custom navigation HTML inside regular BellaDati UI
Each extension can have one or more parameters. They can be used for customization or parametrization of the extension. By using parameters, it is possible to deploy the same extensions in multiple environments without the need to edit the code of the extension itself. In a multi-domain environment, parameters can be also changed by domain administrators.
Examples of parameters usage:
- loading of API keys of external services
- configuring usernames, data set IDs etc.
- enabling or disabling functions of extension
Example of parameter usage:
This section includes tutorials how BellaDati Extensions can be created and used. Each tutorial contains:
- steps how to achieve some goal
- partial source codes
- final extension package which can be imported into your own instance of BellaDati
Please see following child pages for various tutorials: