SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Downloaden Sie, um offline zu lesen
Die Domino REST API
Konzepte und Hintergründe
Stephan H. Wissel
@notessensei
stephan@wisssel.net / stephan.wissel@hcl.com
Please Note
• HCL’s statements regarding its plans, directions, and intent are subject to change
or withdrawal without notice and at HCL’s sole discretion.
• Information regarding potential future products is intended to outline our general product direction and
it should not be relied on in making a purchasing decision.
• The information mentioned regarding potential future products is not a commitment, promise, or legal
obligation to deliver any material, code or functionality. Information about potential future products
may not be incorporated into any contract.
• The development, release, and timing of any future features or functionality described for our products
remains at our sole discretion.
• Performance is based on measurements and projections using standard HCL benchmarks in
a controlled environment. The actual throughput or performance that any user will experience will vary
depending upon many factors, including considerations such as the amount of multiprogramming in
the user’s job stream, the I/O configuration, the storage configuration, and the workload processed.
Therefore, no assurance can be given that an individual user will achieve results similar to those stated
here.
Disclaimer
• Brücke von classic Notes zum Entwicklungszeitgeist
• Umsetzung von offenen Standards
• Leichte Erweiterbarkeit
• Einfacher Start & gute Integrierbarkeit
• Viele Anwendungsfälle
• Domino Sicherheit erweitert
10.07.2023 Präsentationstitel
3
Der Vortrag auf einer Folie
Erstmal eine Demo
10.07.2023 Präsentationstitel
4
Werkzeuge
• Web Oberfläche
• Kommandozeile
• Postman HTTP
Anwendung
“MakeDomino development and access
available to a broad audiencewith diverse
development backgrounds. Keep the barrier to
entry low without sacrificing enterprise and
container deployability. Ensure accesscontrol
through declaration on the server and its
databases, relieving end-user applicationsfrom
that task”
10.07.2023
5
Mission Statement*
* untranslated
Bestandteile
10.07.2023 Präsentationstitel
6
1. OpenAPI 3.0 Spezifikation ( auch bekannt als „swagger“)
2. Übersetzung von Notes Daten nach JSON und zurück
3. Zugriffskontrolle auf Item Ebene erweitert (Barbican)
4. Autorisierung via „JSON Web Token“ (JWT)
5. Identity Provider (IdP) für OAuth eingebaut
6. Läuft zum Testen auch auf einem client
The Barbican
• “Document mode”
definiert durch @Formula
• Legt fest welche Felder
lesbar und schreibbar sind
• Sonderfälle
– raw
– odata
10.07.2023
7
By Tilman2007 - Own work, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=51119929
10.07.2023 Präsentationstitel
8
Barbical - Filterfunktion
Forms und Schemas
Notes client
• Eine Form bestimmt
welche Items eines
Dokuments sichtbar und
bearbeitbar sind
• Kann im Code umgangen
werden
REST API
• Ein Schema bestimmt
welche Items eines
Dokuments sichtbar und
bearbeitbar sind
• Kann nicht durch Code
umgangen warden*
10.07.2023 Präsentationstitel
9
* Ein Agent kann, also aufpassen wen man dran läßt
Schema, Scope & OAuth
10.07.2023
10
Warum Schema und nicht einfach Form?
10.07.2023
11
Notes* JSON OpenAPI**
• Text
• Richtext
• Names
• Author
• Reader
• Number
• DateTime
• string
• number
• boolean
• object
• array
• null
• number, float, double
• integer, int32, int64
• string, date date-time,
password, byte, binary, names,
authors, readers***
• boolean
• array
• object
* Single & Multi-Value
** erweiterbar
*** KEEP Erweiterung
Warum all die Ports?
10.07.2023 Präsentationstitel
12
10.07.2023
13
Die Backstory
Herausforderungen
& Lösungsansätze
Challenge
• Provide access to Domino data and capabilities
independent from choice of programming language or
tools (a.k.a cater to the VSCode generation)
Programmiersprachen
Solution
• REST API
• JSON payloads
• OData
Challenge
• Provide API definitions that are human readable,
current, reusable in code and extensible
API Definition
Solution
• OpenAPI 3.x specification
• API first development
• Shout out to: https://apicur.io
Challenge
• Provide flexible means of authorization, be it the
Domino directory or an external identity
Zugriffskontrolle
Solution
• JWT Token
• /auth endpoint
• Build in OAuth identity provider
• JWT scopes mapping to data
Challenge
• Support hosting Single Page Applications or web
applications without the need for additional server
infrastructure
Web Anwendungen / SPA*
Solution
• CORS support
• keepweb.d
• The Barbican
* SPA = Single Page Applications
Challenge
• System configuration must not depend on a platform
dependent tool or intimate knowledge of parameters
System Konfiguration
Solution
• Admin Client UI delivered with API
• SwaggerUI
• Documentation ass OpenSource
10.07.2023
19
Challenge
• API must not break when database organization
changes. Different consumers need different data sets
API Zugriff
Solution -> scope
• Database alias (e.g. ”crm” points to hq/sales/weilgut.nsf)
• n:1 relationship alias -> NSF with individual configuration
10.07.2023
21
Challenge
• Development partners need a defined way to provide
their own set of REST APIs
Extensibility*
Solution
• Java
• EventBus
• keepconfig.d
dbRequest classes
- Minimal implementation effort
- One method
- Session provided
- Database provided
- Configuration driven
Challenge
• Documentation is never complete, insights from
partners and customers need to be incorporated
Dokumentation
Solution
• Documentation using markdown on GitHub.com
• PlantUML
• Tutorials
• Pull requests welcome
F &A
Fragen?
https://geek-and-poke.com/?offset=1502624606843
DNUG e.V.
Goldenbergstrasse 1
50354 Hürth
Telefon: +49 30 20898805 0
Telefax: +49 30 20898805 1
E-Mail: info@dnug.de
Web: http://www.dnug.de

Weitere ähnliche Inhalte

Ähnlich wie DACHNUG50 Domino REST API - Konzepte und Hintergruende.pdf

MEAN SCS in der Cloud
MEAN SCS in der CloudMEAN SCS in der Cloud
MEAN SCS in der CloudTorsten Fink
 
Wolfgang Mader (Huemer Data Center)
Wolfgang Mader (Huemer Data Center)Wolfgang Mader (Huemer Data Center)
Wolfgang Mader (Huemer Data Center)Agenda Europe 2035
 
NEW VERSION: Data Quality und SOA
NEW VERSION: Data Quality und SOANEW VERSION: Data Quality und SOA
NEW VERSION: Data Quality und SOAUniserv
 
Web APIs auf dem Prüfstand - Volle Kontrolle oder fertig mit den Azure Mobile...
Web APIs auf dem Prüfstand - Volle Kontrolle oder fertig mit den Azure Mobile...Web APIs auf dem Prüfstand - Volle Kontrolle oder fertig mit den Azure Mobile...
Web APIs auf dem Prüfstand - Volle Kontrolle oder fertig mit den Azure Mobile...Peter Kirchner
 
Ivory Soa Suite
Ivory Soa SuiteIvory Soa Suite
Ivory Soa SuitePredrag61
 
Fueling Up Domino - Domino 12.0.2 - DNUG Stammtisch Wien
Fueling Up Domino - Domino 12.0.2 - DNUG Stammtisch WienFueling Up Domino - Domino 12.0.2 - DNUG Stammtisch Wien
Fueling Up Domino - Domino 12.0.2 - DNUG Stammtisch WienDNUG e.V.
 
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und beheben
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und behebenPimp My SharePoint - Performanceprobleme vorbeugen, analysieren und beheben
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und behebenDavid Schneider
 
Objektvalidierung mit dem Bean Validation Api
Objektvalidierung mit dem Bean Validation ApiObjektvalidierung mit dem Bean Validation Api
Objektvalidierung mit dem Bean Validation Apigunnarmorling
 
Integrations-Pattern für OpenID Connect
Integrations-Pattern für OpenID ConnectIntegrations-Pattern für OpenID Connect
Integrations-Pattern für OpenID ConnectQAware GmbH
 
Apache Kafka
Apache KafkaApache Kafka
Apache Kafkagedoplan
 
Bernhard Wick - appserver.io - code.talks 2015
 Bernhard Wick - appserver.io - code.talks 2015 Bernhard Wick - appserver.io - code.talks 2015
Bernhard Wick - appserver.io - code.talks 2015AboutYouGmbH
 
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.QAware GmbH
 
Boost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with DockerBoost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with DockerSteven Grzbielok
 
Apache DeviceMap - Web-Dev-BBQ Stuttgart
Apache DeviceMap - Web-Dev-BBQ StuttgartApache DeviceMap - Web-Dev-BBQ Stuttgart
Apache DeviceMap - Web-Dev-BBQ StuttgartWerner Keil
 
Ein Überblick: One Identity Manager Anbindung von SAP HCM und Active Directory
Ein Überblick: One Identity Manager Anbindung von SAP HCM und Active DirectoryEin Überblick: One Identity Manager Anbindung von SAP HCM und Active Directory
Ein Überblick: One Identity Manager Anbindung von SAP HCM und Active DirectoryIBsolution GmbH
 
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDI
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDISchlanke Webarchitekturen nicht nur mit JSF 2 und CDI
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDIadesso AG
 

Ähnlich wie DACHNUG50 Domino REST API - Konzepte und Hintergruende.pdf (20)

MEAN SCS in der Cloud
MEAN SCS in der CloudMEAN SCS in der Cloud
MEAN SCS in der Cloud
 
Wolfgang Mader (Huemer Data Center)
Wolfgang Mader (Huemer Data Center)Wolfgang Mader (Huemer Data Center)
Wolfgang Mader (Huemer Data Center)
 
NEW VERSION: Data Quality und SOA
NEW VERSION: Data Quality und SOANEW VERSION: Data Quality und SOA
NEW VERSION: Data Quality und SOA
 
imatics FormEngine
imatics FormEngineimatics FormEngine
imatics FormEngine
 
GWT
GWTGWT
GWT
 
Web APIs auf dem Prüfstand - Volle Kontrolle oder fertig mit den Azure Mobile...
Web APIs auf dem Prüfstand - Volle Kontrolle oder fertig mit den Azure Mobile...Web APIs auf dem Prüfstand - Volle Kontrolle oder fertig mit den Azure Mobile...
Web APIs auf dem Prüfstand - Volle Kontrolle oder fertig mit den Azure Mobile...
 
Ivory Soa Suite
Ivory Soa SuiteIvory Soa Suite
Ivory Soa Suite
 
CDI
CDICDI
CDI
 
Fueling Up Domino - Domino 12.0.2 - DNUG Stammtisch Wien
Fueling Up Domino - Domino 12.0.2 - DNUG Stammtisch WienFueling Up Domino - Domino 12.0.2 - DNUG Stammtisch Wien
Fueling Up Domino - Domino 12.0.2 - DNUG Stammtisch Wien
 
GWT – Google Web Toolkit in der Praxis
GWT – Google Web Toolkit in der PraxisGWT – Google Web Toolkit in der Praxis
GWT – Google Web Toolkit in der Praxis
 
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und beheben
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und behebenPimp My SharePoint - Performanceprobleme vorbeugen, analysieren und beheben
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und beheben
 
Objektvalidierung mit dem Bean Validation Api
Objektvalidierung mit dem Bean Validation ApiObjektvalidierung mit dem Bean Validation Api
Objektvalidierung mit dem Bean Validation Api
 
Integrations-Pattern für OpenID Connect
Integrations-Pattern für OpenID ConnectIntegrations-Pattern für OpenID Connect
Integrations-Pattern für OpenID Connect
 
Apache Kafka
Apache KafkaApache Kafka
Apache Kafka
 
Bernhard Wick - appserver.io - code.talks 2015
 Bernhard Wick - appserver.io - code.talks 2015 Bernhard Wick - appserver.io - code.talks 2015
Bernhard Wick - appserver.io - code.talks 2015
 
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.Steinzeit war gestern! Wege der Cloud-nativen Evolution.
Steinzeit war gestern! Wege der Cloud-nativen Evolution.
 
Boost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with DockerBoost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with Docker
 
Apache DeviceMap - Web-Dev-BBQ Stuttgart
Apache DeviceMap - Web-Dev-BBQ StuttgartApache DeviceMap - Web-Dev-BBQ Stuttgart
Apache DeviceMap - Web-Dev-BBQ Stuttgart
 
Ein Überblick: One Identity Manager Anbindung von SAP HCM und Active Directory
Ein Überblick: One Identity Manager Anbindung von SAP HCM und Active DirectoryEin Überblick: One Identity Manager Anbindung von SAP HCM und Active Directory
Ein Überblick: One Identity Manager Anbindung von SAP HCM und Active Directory
 
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDI
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDISchlanke Webarchitekturen nicht nur mit JSF 2 und CDI
Schlanke Webarchitekturen nicht nur mit JSF 2 und CDI
 

Mehr von DNUG e.V.

Slides (2) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...Slides (2) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...DNUG e.V.
 
Slides (1) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (1) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...Slides (1) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (1) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...DNUG e.V.
 
Slides (1) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (1) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...Slides (1) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (1) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...DNUG e.V.
 
Slides zum Impulsreferat: HCL BigFix - DNUG Stammtisch Karlsruhe
Slides zum Impulsreferat: HCL BigFix  - DNUG Stammtisch KarlsruheSlides zum Impulsreferat: HCL BigFix  - DNUG Stammtisch Karlsruhe
Slides zum Impulsreferat: HCL BigFix - DNUG Stammtisch KarlsruheDNUG e.V.
 
Slides zum Impulsreferat: NIS2 & HCL BigFix - DNUG Stammtisch Karlsruhe
Slides zum Impulsreferat: NIS2 & HCL BigFix - DNUG Stammtisch KarlsruheSlides zum Impulsreferat: NIS2 & HCL BigFix - DNUG Stammtisch Karlsruhe
Slides zum Impulsreferat: NIS2 & HCL BigFix - DNUG Stammtisch KarlsruheDNUG e.V.
 
Slides zum Impulsreferat: NIS2 - Was steckt konkret dahinter? - DNUG Stammtis...
Slides zum Impulsreferat: NIS2 - Was steckt konkret dahinter? - DNUG Stammtis...Slides zum Impulsreferat: NIS2 - Was steckt konkret dahinter? - DNUG Stammtis...
Slides zum Impulsreferat: NIS2 - Was steckt konkret dahinter? - DNUG Stammtis...DNUG e.V.
 
HCL Nomad - DNUG Stammtisch Salzburg.pdf
HCL Nomad - DNUG Stammtisch Salzburg.pdfHCL Nomad - DNUG Stammtisch Salzburg.pdf
HCL Nomad - DNUG Stammtisch Salzburg.pdfDNUG e.V.
 
Trends in Cybersecurity - DNUG Stammtisch Wien
Trends in Cybersecurity - DNUG Stammtisch Wien Trends in Cybersecurity - DNUG Stammtisch Wien
Trends in Cybersecurity - DNUG Stammtisch Wien DNUG e.V.
 
DACHNUG50 MX_Workshop.pdf
DACHNUG50 MX_Workshop.pdfDACHNUG50 MX_Workshop.pdf
DACHNUG50 MX_Workshop.pdfDNUG e.V.
 
DACHNUG50 CNX0 Workshop.pdf
DACHNUG50 CNX0 Workshop.pdfDACHNUG50 CNX0 Workshop.pdf
DACHNUG50 CNX0 Workshop.pdfDNUG e.V.
 
DACHNUG50 What's new in CCB - V3.3.pdf
DACHNUG50 What's new in CCB - V3.3.pdfDACHNUG50 What's new in CCB - V3.3.pdf
DACHNUG50 What's new in CCB - V3.3.pdfDNUG e.V.
 
DACHNUG50 presentation 15 June 2023.pdf
DACHNUG50 presentation 15 June 2023.pdfDACHNUG50 presentation 15 June 2023.pdf
DACHNUG50 presentation 15 June 2023.pdfDNUG e.V.
 
DACHNUG50 Pointsharp overview_web_A4.pdf
DACHNUG50 Pointsharp overview_web_A4.pdfDACHNUG50 Pointsharp overview_web_A4.pdf
DACHNUG50 Pointsharp overview_web_A4.pdfDNUG e.V.
 
DACHNUG50 OnTime for Domino.pdf
DACHNUG50 OnTime for Domino.pdfDACHNUG50 OnTime for Domino.pdf
DACHNUG50 OnTime for Domino.pdfDNUG e.V.
 
DACHNUG50 Interpretation-von-Event-Logs-aus-CNX-mit-Hilfe-von-Domino.pdf
DACHNUG50 Interpretation-von-Event-Logs-aus-CNX-mit-Hilfe-von-Domino.pdfDACHNUG50 Interpretation-von-Event-Logs-aus-CNX-mit-Hilfe-von-Domino.pdf
DACHNUG50 Interpretation-von-Event-Logs-aus-CNX-mit-Hilfe-von-Domino.pdfDNUG e.V.
 
DACHNUG50 Erfolgreiche Digitalisierung Notes Anwendungen mit Low Code L”sung ...
DACHNUG50 Erfolgreiche Digitalisierung Notes Anwendungen mit Low Code L”sung ...DACHNUG50 Erfolgreiche Digitalisierung Notes Anwendungen mit Low Code L”sung ...
DACHNUG50 Erfolgreiche Digitalisierung Notes Anwendungen mit Low Code L”sung ...DNUG e.V.
 
DACHNUG50 EasyTeamsWork.pdf
DACHNUG50 EasyTeamsWork.pdfDACHNUG50 EasyTeamsWork.pdf
DACHNUG50 EasyTeamsWork.pdfDNUG e.V.
 
DACHNUG50 Sametime Mobile aber sicher.pdf
DACHNUG50 Sametime Mobile aber sicher.pdfDACHNUG50 Sametime Mobile aber sicher.pdf
DACHNUG50 Sametime Mobile aber sicher.pdfDNUG e.V.
 
DACHNUG50 Sametime im Callcenter.pdf
DACHNUG50 Sametime im Callcenter.pdfDACHNUG50 Sametime im Callcenter.pdf
DACHNUG50 Sametime im Callcenter.pdfDNUG e.V.
 
DACHNUG50 Sametime Betrieb.pdf
DACHNUG50 Sametime Betrieb.pdfDACHNUG50 Sametime Betrieb.pdf
DACHNUG50 Sametime Betrieb.pdfDNUG e.V.
 

Mehr von DNUG e.V. (20)

Slides (2) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...Slides (2) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (2) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
 
Slides (1) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (1) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...Slides (1) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (1) zu Teil 3 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
 
Slides (1) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (1) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...Slides (1) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
Slides (1) zu Teil 2 der Veranstaltungsreihe Anwendungsentwicklung mit Volt M...
 
Slides zum Impulsreferat: HCL BigFix - DNUG Stammtisch Karlsruhe
Slides zum Impulsreferat: HCL BigFix  - DNUG Stammtisch KarlsruheSlides zum Impulsreferat: HCL BigFix  - DNUG Stammtisch Karlsruhe
Slides zum Impulsreferat: HCL BigFix - DNUG Stammtisch Karlsruhe
 
Slides zum Impulsreferat: NIS2 & HCL BigFix - DNUG Stammtisch Karlsruhe
Slides zum Impulsreferat: NIS2 & HCL BigFix - DNUG Stammtisch KarlsruheSlides zum Impulsreferat: NIS2 & HCL BigFix - DNUG Stammtisch Karlsruhe
Slides zum Impulsreferat: NIS2 & HCL BigFix - DNUG Stammtisch Karlsruhe
 
Slides zum Impulsreferat: NIS2 - Was steckt konkret dahinter? - DNUG Stammtis...
Slides zum Impulsreferat: NIS2 - Was steckt konkret dahinter? - DNUG Stammtis...Slides zum Impulsreferat: NIS2 - Was steckt konkret dahinter? - DNUG Stammtis...
Slides zum Impulsreferat: NIS2 - Was steckt konkret dahinter? - DNUG Stammtis...
 
HCL Nomad - DNUG Stammtisch Salzburg.pdf
HCL Nomad - DNUG Stammtisch Salzburg.pdfHCL Nomad - DNUG Stammtisch Salzburg.pdf
HCL Nomad - DNUG Stammtisch Salzburg.pdf
 
Trends in Cybersecurity - DNUG Stammtisch Wien
Trends in Cybersecurity - DNUG Stammtisch Wien Trends in Cybersecurity - DNUG Stammtisch Wien
Trends in Cybersecurity - DNUG Stammtisch Wien
 
DACHNUG50 MX_Workshop.pdf
DACHNUG50 MX_Workshop.pdfDACHNUG50 MX_Workshop.pdf
DACHNUG50 MX_Workshop.pdf
 
DACHNUG50 CNX0 Workshop.pdf
DACHNUG50 CNX0 Workshop.pdfDACHNUG50 CNX0 Workshop.pdf
DACHNUG50 CNX0 Workshop.pdf
 
DACHNUG50 What's new in CCB - V3.3.pdf
DACHNUG50 What's new in CCB - V3.3.pdfDACHNUG50 What's new in CCB - V3.3.pdf
DACHNUG50 What's new in CCB - V3.3.pdf
 
DACHNUG50 presentation 15 June 2023.pdf
DACHNUG50 presentation 15 June 2023.pdfDACHNUG50 presentation 15 June 2023.pdf
DACHNUG50 presentation 15 June 2023.pdf
 
DACHNUG50 Pointsharp overview_web_A4.pdf
DACHNUG50 Pointsharp overview_web_A4.pdfDACHNUG50 Pointsharp overview_web_A4.pdf
DACHNUG50 Pointsharp overview_web_A4.pdf
 
DACHNUG50 OnTime for Domino.pdf
DACHNUG50 OnTime for Domino.pdfDACHNUG50 OnTime for Domino.pdf
DACHNUG50 OnTime for Domino.pdf
 
DACHNUG50 Interpretation-von-Event-Logs-aus-CNX-mit-Hilfe-von-Domino.pdf
DACHNUG50 Interpretation-von-Event-Logs-aus-CNX-mit-Hilfe-von-Domino.pdfDACHNUG50 Interpretation-von-Event-Logs-aus-CNX-mit-Hilfe-von-Domino.pdf
DACHNUG50 Interpretation-von-Event-Logs-aus-CNX-mit-Hilfe-von-Domino.pdf
 
DACHNUG50 Erfolgreiche Digitalisierung Notes Anwendungen mit Low Code L”sung ...
DACHNUG50 Erfolgreiche Digitalisierung Notes Anwendungen mit Low Code L”sung ...DACHNUG50 Erfolgreiche Digitalisierung Notes Anwendungen mit Low Code L”sung ...
DACHNUG50 Erfolgreiche Digitalisierung Notes Anwendungen mit Low Code L”sung ...
 
DACHNUG50 EasyTeamsWork.pdf
DACHNUG50 EasyTeamsWork.pdfDACHNUG50 EasyTeamsWork.pdf
DACHNUG50 EasyTeamsWork.pdf
 
DACHNUG50 Sametime Mobile aber sicher.pdf
DACHNUG50 Sametime Mobile aber sicher.pdfDACHNUG50 Sametime Mobile aber sicher.pdf
DACHNUG50 Sametime Mobile aber sicher.pdf
 
DACHNUG50 Sametime im Callcenter.pdf
DACHNUG50 Sametime im Callcenter.pdfDACHNUG50 Sametime im Callcenter.pdf
DACHNUG50 Sametime im Callcenter.pdf
 
DACHNUG50 Sametime Betrieb.pdf
DACHNUG50 Sametime Betrieb.pdfDACHNUG50 Sametime Betrieb.pdf
DACHNUG50 Sametime Betrieb.pdf
 

DACHNUG50 Domino REST API - Konzepte und Hintergruende.pdf

  • 1. Die Domino REST API Konzepte und Hintergründe Stephan H. Wissel @notessensei stephan@wisssel.net / stephan.wissel@hcl.com
  • 2. Please Note • HCL’s statements regarding its plans, directions, and intent are subject to change or withdrawal without notice and at HCL’s sole discretion. • Information regarding potential future products is intended to outline our general product direction and it should not be relied on in making a purchasing decision. • The information mentioned regarding potential future products is not a commitment, promise, or legal obligation to deliver any material, code or functionality. Information about potential future products may not be incorporated into any contract. • The development, release, and timing of any future features or functionality described for our products remains at our sole discretion. • Performance is based on measurements and projections using standard HCL benchmarks in a controlled environment. The actual throughput or performance that any user will experience will vary depending upon many factors, including considerations such as the amount of multiprogramming in the user’s job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve results similar to those stated here. Disclaimer
  • 3. • Brücke von classic Notes zum Entwicklungszeitgeist • Umsetzung von offenen Standards • Leichte Erweiterbarkeit • Einfacher Start & gute Integrierbarkeit • Viele Anwendungsfälle • Domino Sicherheit erweitert 10.07.2023 Präsentationstitel 3 Der Vortrag auf einer Folie
  • 4. Erstmal eine Demo 10.07.2023 Präsentationstitel 4 Werkzeuge • Web Oberfläche • Kommandozeile • Postman HTTP Anwendung
  • 5. “MakeDomino development and access available to a broad audiencewith diverse development backgrounds. Keep the barrier to entry low without sacrificing enterprise and container deployability. Ensure accesscontrol through declaration on the server and its databases, relieving end-user applicationsfrom that task” 10.07.2023 5 Mission Statement* * untranslated
  • 6. Bestandteile 10.07.2023 Präsentationstitel 6 1. OpenAPI 3.0 Spezifikation ( auch bekannt als „swagger“) 2. Übersetzung von Notes Daten nach JSON und zurück 3. Zugriffskontrolle auf Item Ebene erweitert (Barbican) 4. Autorisierung via „JSON Web Token“ (JWT) 5. Identity Provider (IdP) für OAuth eingebaut 6. Läuft zum Testen auch auf einem client
  • 7. The Barbican • “Document mode” definiert durch @Formula • Legt fest welche Felder lesbar und schreibbar sind • Sonderfälle – raw – odata 10.07.2023 7 By Tilman2007 - Own work, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=51119929
  • 9. Forms und Schemas Notes client • Eine Form bestimmt welche Items eines Dokuments sichtbar und bearbeitbar sind • Kann im Code umgangen werden REST API • Ein Schema bestimmt welche Items eines Dokuments sichtbar und bearbeitbar sind • Kann nicht durch Code umgangen warden* 10.07.2023 Präsentationstitel 9 * Ein Agent kann, also aufpassen wen man dran läßt
  • 10. Schema, Scope & OAuth 10.07.2023 10
  • 11. Warum Schema und nicht einfach Form? 10.07.2023 11 Notes* JSON OpenAPI** • Text • Richtext • Names • Author • Reader • Number • DateTime • string • number • boolean • object • array • null • number, float, double • integer, int32, int64 • string, date date-time, password, byte, binary, names, authors, readers*** • boolean • array • object * Single & Multi-Value ** erweiterbar *** KEEP Erweiterung
  • 12. Warum all die Ports? 10.07.2023 Präsentationstitel 12
  • 14. Challenge • Provide access to Domino data and capabilities independent from choice of programming language or tools (a.k.a cater to the VSCode generation) Programmiersprachen Solution • REST API • JSON payloads • OData
  • 15. Challenge • Provide API definitions that are human readable, current, reusable in code and extensible API Definition Solution • OpenAPI 3.x specification • API first development • Shout out to: https://apicur.io
  • 16. Challenge • Provide flexible means of authorization, be it the Domino directory or an external identity Zugriffskontrolle Solution • JWT Token • /auth endpoint • Build in OAuth identity provider • JWT scopes mapping to data
  • 17. Challenge • Support hosting Single Page Applications or web applications without the need for additional server infrastructure Web Anwendungen / SPA* Solution • CORS support • keepweb.d • The Barbican * SPA = Single Page Applications
  • 18. Challenge • System configuration must not depend on a platform dependent tool or intimate knowledge of parameters System Konfiguration Solution • Admin Client UI delivered with API • SwaggerUI • Documentation ass OpenSource
  • 20. Challenge • API must not break when database organization changes. Different consumers need different data sets API Zugriff Solution -> scope • Database alias (e.g. ”crm” points to hq/sales/weilgut.nsf) • n:1 relationship alias -> NSF with individual configuration
  • 22. Challenge • Development partners need a defined way to provide their own set of REST APIs Extensibility* Solution • Java • EventBus • keepconfig.d
  • 23. dbRequest classes - Minimal implementation effort - One method - Session provided - Database provided - Configuration driven
  • 24. Challenge • Documentation is never complete, insights from partners and customers need to be incorporated Dokumentation Solution • Documentation using markdown on GitHub.com • PlantUML • Tutorials • Pull requests welcome
  • 26. DNUG e.V. Goldenbergstrasse 1 50354 Hürth Telefon: +49 30 20898805 0 Telefax: +49 30 20898805 1 E-Mail: info@dnug.de Web: http://www.dnug.de