![](/SIT/SitWeb2.nsf/xsp/.ibmmodres/persistence/DominoDoc-CBA-body/_1_17257567280180-8A.png)
Was ist ein REST-API und wozu ist es gut?
Representational State Transfer (REST) bezeichnet ein Programmierparadigma für verteilte Systeme, insbesondere für Webservices. REST ist eine Abstraktion der Struktur und des Verhaltens des World Wide Web. REST hat das Ziel, einen Architekturstil zu schaffen, der die Anforderungen des modernen Web besser darstellt. Dabei unterscheidet sich REST vor allem in der Forderung nach einer einheitlichen Schnittstelle von anderen Architekturstilen.
So viel aus Wikipedia. Vereinfacht gesagt stellt ein REST API für HCL Domino eine standardisierte Programmierschnittstelle von außen dar, d.h. externe Anwendungen können mit Domino Apps Daten austauschen und deren Funktionalität nutzen, ohne spezielles Wissen oder spezielle Techniken zum Zugriff auf die HCL Domino Infrastruktur zu benötigen. Das API stellt Datenaustauschpunkte bereit, die in einer Standard-Notation aufgelegt sind (OpenAPI 3.0) und liefert Daten als JSON-Strukturen maschinen- und menschenlesbar aus und nimmt sie entgegen.
IMPRISIS HDR liefert generische Aufrufe um Standardfunktionen schnell und effektiv nutzbar zu machen und stellt einen Technologie-Rahmen für individuelle Erweiterungen bereit.
Hat Domino sowas nicht schon?
Ja, HCL Domino verfügt über die sogenannten Domino Access Services, ein funktional stark eingeschränktes REST-API, das einen kleinen Funktionsumfang der in HCL Domino Anwendungen enthaltenen Daten unterstützt. Es wird meist jedoch in der Praxis aufgrund seiner zahlreichen funktionalen Defizite kaum genutzt.
Gleichzeitig existiert mit dem HCL DominoAppDevPack eine Node.js API Implementierung, die eine wesentlich breitere funktionale Abdeckung bereitstellt und auf Node.js/JavaScript oder Java als Programmiersprachen aufsetzt. Gleichzeitig liefert dieses API moderne Bausteine zur Authentifizierung mit (OAuth2), deckt allerdings ebenso wie die Domino Access Services nur einen Teil der HCL Domino Funktionen ab.
Was macht nun IMPRISIS HDR so besonders ?
![](/SIT/SitWeb2.nsf/xsp/.ibmmodres/persistence/DominoDoc-CBA-body/_1_17257567280180-544E.gif)
IMPRISIS HDR überbrückt zahlreiche funktionale Lücken der bisherigen Lösung und stellt auf Basis von Node.js ein standardisiertes REST-API zum Zugriff auf Daten in HCL Domino zur Verfügung. Dazu gehören:
- Dokumente (lesen / schreiben / löschen)
- Datenbanken erstellen / löschen
- Designelemente und ihre Definitionen auslesen (Forms, Views, Folders)
- Zugriffsrechte bearbeiten über die ACL der jeweiligen Domino App
- Ansichten (Views) auslesen inkl. kategorisierter Ansichten
- Profildokumente lesen / schreiben / löschen
- Freie-Zeit-Abfrage und Kalenderbuchungen für Personen und Ressourcen
- Integrationsmöglichkeiten bestehender Geschäftslogik in LotusScript und Java
- integrierte OAuth2 - Authentifizierung via Identity and Access Management Server (IAM) des HCL Domino AppDevPacks
- RichText-Inhalte in HTML wandeln und bearbeiten (lesen / schreiben / löschen inklusive Anhänge und Bilder), sicherer Round-Trip von HTML zurück nach RichText
- perfekte Integration mit den IMPRISIS ADP - Frontendbausteinen für React.
![](/SIT/SitWeb2.nsf/xsp/.ibmmodres/persistence/DominoDoc-CBA-body/_1_17257567280194-336E.png)
Die Basisarchitektur
IMPRISIS HDR stellt eine zentrale REST-API-Fassade für die moderne Anwendungsentwicklung mit HCL Domino bereit. Das Ziel ist, einen Web-Entwickler innerhalb weniger Minuten in die Lage zu versetzen, Daten aus bestehenden Anwendungen in HCL Domio zu konsumieren oder zu erzeugen oder auch die Datenbankschicht von HCL Domino als schnelle, stabile No-SQL Datenbank in eigenen Projekten zu verwenden. Dazu nimmt unser API dem Web-Entwickler alle Sonder- und Spezialimplementierungen von HCL Domino API und Daten-Strukturen ab und normalisiert diese über ein JSON / REST basiertes Interface.
Was ist der Vorteil dieser Vorgehensweise?
- Architekturelle Standardisierung der API Schicht auf Node.js / Express als weit verbeiteten Applikations-Server
- Nutzung der HCL Domino Kernfunktionen: Datensicherheit, Replikation, No-SQL Datenbank
- Standardisierung der Web-Frontend-Entwicklung auf breit verfügbares Entwicklerwissen und breit unterstützte Technologiebausteine
- Beschleunigung der Anwendungsentwicklung durch Standardisierung und Flexibilisierung z.B. durch eigene API-Erweiterungen.
![](/SIT/SitWeb2.nsf/xsp/.ibmmodres/persistence/DominoDoc-CBA-body/_1_17257567280197-39D4.png)
Neugierig geworden?
Sprechen Sie uns an - wir zeigen Ihnen unsere Architektur gerne auch "Live und in Farbe"!