This tutorial shows only a glimpse to the modernisation of Notes applications with Vaadin. You can follow similar concepts also with other techniques and frameworks like AngularJS or ReactJS.
What we have skipped in this tutorial and you definitely should take care of, when doing modernisation in production environments:
I have simply skipped the security to keep this tutorial clean and easy, but for production environment, you definitely have to think about your security. There are multiple options implementing authentication and authorisation. Spring Boot comes with a huge set of built in security options to authenticate for example with an existing ldap or active directory.
When using a REST api like that one we’ve created, you should implement at least an secure api key mechanism to allow only requests sent by authorised applications. You can also provide an “on behalf of” mechanism to let the api check the access to each database and even on document or field level. The user should get only information he has access to, even when using an “external” Vaadin application.
Extended REST APIs
In the tutorial, you saw the basics. How to create a REST api inside of an individual Notes application. When you plan to use such APIs for multiple databases, you can create something like an universal connector to access multiple databases more easily.
Also, the api is not limited to only read and write data. For more complex applications, it might be helpful to provide a functional api. For example, you have a complex piece of code currently executed during a document save. You can re-write this code in java and execute it directly with an api call, or you put your Lotusscript or formula code to an agent and execute this agent with a document id as context.
Hosting your application
Vaadin + Spring Boot is only one possibility to have a standalone application. There are many other possibilities to host your Vaadin application. Application servers, Portlet servers, cloud providers or you can even put it into an OSGi servlet and host it on your Domino server…