OBS/Kostenpflichtige Module/RESTServer: Unterschied zwischen den Versionen

Aus OBS Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 3: Zeile 3:
{{Hinweis|Es handelt sich um ein kostenpflichtiges Modul. Die Schnittstelle muss über den OBS-Support aktiviert werden.}}
{{Hinweis|Es handelt sich um ein kostenpflichtiges Modul. Die Schnittstelle muss über den OBS-Support aktiviert werden.}}


Der OBS REST-Server stellt einen frei konfigurierbaren HTTP/HTTPS-Dienst bereit, über den externe Teilnehmer auf Funktionen und Daten der OBS-Datenbank zugreifen können. Jeder Endpunkt wird über ein in OBS gepflegtes Pascal-Script bedient, die Rückgaben erfolgen ausschliesslich im JSON-Format.
==Was leistet der REST-Server?==
 
Der REST-Server ist die '''universelle Schnittstelle''' Ihrer OBS-Installation nach aussen. Er macht aus Ihrem OBS einen Dienst, mit dem andere Programme - Webseiten, Apps, Geraete, Kundensysteme, Cloud-Dienste - direkt sprechen koennen. Statt Daten manuell zu exportieren, zu mailen oder ueber Umwege bereitzustellen, holen sich angebundene Systeme genau die Information, die sie brauchen, in dem Moment, in dem sie sie brauchen - oder liefern neue Daten direkt in OBS ab.
 
Fuer Anwender, die nicht selbst programmieren, bedeutet das: '''Was bisher nur manuell, per Datei-Import oder ueber Spezialschnittstellen ging, laesst sich jetzt automatisieren.''' Eine Webseite zeigt live aktuelle Lagerbestaende. Mitarbeiter erfassen Zeiten ueber das Handy, ohne dass jemand Excel-Listen einpflegen muss. Ein Kunde stoesst per Bestelltaste in seinem System einen Vorgang in Ihrem OBS an. Ein Lieferant meldet Wareneingaenge automatisch zurueck. Jeder dieser Anwendungsfaelle wird einmal eingerichtet und laeuft danach automatisch.
 
Technisch gesehen ist der REST-Server ein in OBS integrierter, voll konfigurierbarer '''HTTP/HTTPS-Dienst''', dessen Endpunkte ueber in OBS gepflegte Pascal-Skripte realisiert werden. Jeder Endpunkt bekommt eine eigene Adresse, eine eigene Logik und eine eigene Berechtigungsstruktur. Rueckgaben erfolgen ausschliesslich im JSON-Format. Damit lassen sich beliebige Lese- und Schreibvorgaenge auf der OBS-Datenbank realisieren, ohne dass externe Systeme direkten Datenbank-Zugriff erhalten - das ganze OBS-Regelwerk (Rechte, Validierung, Geschaeftslogik) bleibt aktiv.
 
Im Ergebnis ist der REST-Server kein einzelnes Feature, sondern ein '''Werkzeugkasten''': Was an Daten oder Funktionen in OBS verfuegbar ist, kann ueber den REST-Server auch nach aussen angeboten - oder von aussen entgegengenommen - werden. Die Bandbreite reicht vom einfachen Lese-Endpunkt fuer ein Webseiten-Widget bis hin zu kompletten B2B-Integrationen mit Mandanten- und Rollen-Trennung.


Aufruf des Moduls in OBS:
Aufruf des Moduls in OBS:
Zeile 10: Zeile 18:
==Anwendungsbereiche==
==Anwendungsbereiche==


Typische Einsatzfälle:
Die folgenden Einsatzfaelle sind typische Beispiele, an denen sich der praktische Nutzen ablesen laesst. Es ist keine abschliessende Liste - alles, was sich in OBS-Skripten abbilden laesst, kann auch ueber einen Endpunkt bereitgestellt werden.
 
===Webseiten und Kundenportale===
 
* '''Live-Daten auf der eigenen Webseite:''' Lagerbestaende, Verfuegbarkeiten, Preise, Auftragsstatus aus OBS direkt anzeigen, ohne taegliche Datei-Exports.
* '''Kundenportale:''' Kunden sehen ihre offenen Posten, Auftragshistorie, Lieferscheine. Die Seite holt sich die Daten zur Anzeigezeit direkt aus OBS, jeder Kunde sieht nur seine eigenen Daten.
* '''Trackingseiten:''' Status einer Bestellung, eines Auftrags oder einer Reparatur fuer Endkunden, abrufbar ueber eine Sendungsnummer.
 
===Mobile Anwendungen und Aussendienst===
 
* '''Mobile Zeiterfassung:''' Mitarbeiter buchen Anfang, Pause und Ende ueber Smartphone oder Tablet, die Daten landen direkt in OBS - ohne Zettelwirtschaft.
* '''QR-/Barcode-Scanner und Lagergeraete:''' Wareneingang, Inventur, Kommissionierung direkt in OBS abbilden, ohne zwischengeschaltete Software.
* '''Aussendienst-Apps:''' Techniker sehen ihre Auftraege, dokumentieren Einsaetze, erfassen Material - synchronisiert mit OBS.
 
===Anbindung von Drittsystemen===
 
* '''Webshops:''' Bestellungen werden direkt vom Shop in OBS gemeldet, Lagerbestaende und Preise vom Shop bei OBS abgefragt.
* '''Buchhaltungs- und ERP-Systeme:''' Bidirektionaler Austausch von Belegen, Stammdaten und Buchungen.
* '''CRM- und Marketing-Tools:''' Personendaten, Aktivitaeten oder Mailing-Empfaenger werden synchron gehalten.
* '''Logistikdienstleister:''' Versandauftraege werden uebergeben, Tracking-Informationen zurueckgeliefert.
 
===Automatisierte Rueckmeldungen (WebHooks)===
 
* '''Zahlungs-Callbacks:''' Bezahldienste (z.B. PayPal, Klarna, Stripe) melden den Zahlungseingang an einen WebHook-Endpunkt - OBS bucht automatisch.
* '''Versanddienste:''' Statusmeldungen (verschickt, zugestellt, retour) werden direkt im passenden Vorgang dokumentiert.
* '''Cloud-Workflows:''' Externe Automatisierungs-Plattformen (Make, Zapier, n8n, ...) stossen OBS-Vorgaenge an oder werden von OBS aus angesprochen.
 
===Geschaeftspartner-Kommunikation (B2B)===
 
* '''Lieferanten-Schnittstelle:''' Bestellungen werden automatisch uebergeben, Auftragsbestaetigungen und Lieferavise zurueckgespielt.
* '''Kunden-Schnittstelle:''' Grosskunden bestellen direkt aus ihrem ERP heraus, Stammdaten und Konditionen werden zentral gepflegt.
* '''Sichere Maschine-zu-Maschine-Kommunikation:''' Mit Mutual-TLS (mTLS) wird sichergestellt, dass nur die freigeschalteten Partnersysteme - und niemand sonst - mit OBS sprechen koennen.
 
===Interne Microservices und Automatisierungen===
 
* '''Eigene kleine Hilfs-Tools:''' Zeitschaltautomatik, Reporting-Generator, Sammelaktionen, die aus mehreren Quellen Daten in OBS verarbeiten.
* '''Verbindung mehrerer Standorte:''' Verteilte Systeme tauschen Daten ueber definierte Endpunkte aus, ohne offene Datenbankverbindungen.
* '''Datenbereitstellung fuer Dashboards und Auswertungen:''' BI-Tools (Power BI, Grafana, ...) lesen aufbereitete Kennzahlen direkt aus OBS.
 
===Was bedeutet das wirtschaftlich?===


* Bereitstellung von OBS-Daten für Webseiten (Steürungsdaten, Statistiken, Verfügbarkeiten)
* '''Manuelle Arbeit faellt weg.''' Daten werden nicht mehr aus OBS exportiert, per Mail geschickt und woanders eingelesen - sie fliessen direkt.
* Anbindung mobiler Endgeräte (Zeiterfassung, QR-Scanner, Lagerlisten)
* '''Fehler werden weniger.''' Jede manuelle Stelle ist eine moegliche Fehlerquelle; jede Automatisierung eine Stelle, an der nichts mehr schiefgehen kann.
* Integration mit Drittsystemen (ERP, Shop, Buchhaltung) über JSON-APIs
* '''Neue Geschaeftsmodelle werden moeglich.''' Kunden- und Lieferantenportale, Self-Service-Funktionen, App-Anbindungen lassen sich aufbauen, ohne ein zweites System pflegen zu muessen.
* Empfang von WebHook-Aufrufen externer Dienste (z.B. Bezahl-Callbacks)
* '''Bestehende Software bleibt verbunden.''' Statt eine vorhandene Anwendung abloesen zu muessen, kann sie ueber den REST-Server an OBS angedockt werden - in beiden Richtungen.
* Bereitstellung interner Microservices mit gegenseitiger Authentifizierung (mTLS)
* '''Skaliert mit:''' Was klein anfaengt (ein einzelner Endpunkt fuer eine Webseite) kann zu einer kompletten Integrations-Plattform ausgebaut werden, ohne dass die Grundlage gewechselt werden muss.


==Architektur im Überblick==
==Architektur im Überblick==

Version vom 19. Mai 2026, 07:24 Uhr

Kostenpflichtige Module

Internet-Shop
UPS
IMS Professional
SMS
Mehrlager-Verwaltung
Mehrsprachen Modul
Multilanguage Modul
EVA Marketing Tool
Termin-Projekte
Edifact-Schnittstelle
Backup Überwachung Email
OBS Geo Daten
DeliSprint / DPD
Filialen
Cashback
Moebelschnittstelle
Dokumenten Manager
DocuWare-Schnittstelle
OFML-Kalkulation
Versicherungsschaden
Gutschriftsanzeigen
Kameraverwaltung
DataInOut
OpenMasterData / IDS
Sammelpositionen


REST-Server

HINWEIS: Es handelt sich um ein kostenpflichtiges Modul. Die Schnittstelle muss über den OBS-Support aktiviert werden.

Was leistet der REST-Server?

Der REST-Server ist die universelle Schnittstelle Ihrer OBS-Installation nach aussen. Er macht aus Ihrem OBS einen Dienst, mit dem andere Programme - Webseiten, Apps, Geraete, Kundensysteme, Cloud-Dienste - direkt sprechen koennen. Statt Daten manuell zu exportieren, zu mailen oder ueber Umwege bereitzustellen, holen sich angebundene Systeme genau die Information, die sie brauchen, in dem Moment, in dem sie sie brauchen - oder liefern neue Daten direkt in OBS ab.

Fuer Anwender, die nicht selbst programmieren, bedeutet das: Was bisher nur manuell, per Datei-Import oder ueber Spezialschnittstellen ging, laesst sich jetzt automatisieren. Eine Webseite zeigt live aktuelle Lagerbestaende. Mitarbeiter erfassen Zeiten ueber das Handy, ohne dass jemand Excel-Listen einpflegen muss. Ein Kunde stoesst per Bestelltaste in seinem System einen Vorgang in Ihrem OBS an. Ein Lieferant meldet Wareneingaenge automatisch zurueck. Jeder dieser Anwendungsfaelle wird einmal eingerichtet und laeuft danach automatisch.

Technisch gesehen ist der REST-Server ein in OBS integrierter, voll konfigurierbarer HTTP/HTTPS-Dienst, dessen Endpunkte ueber in OBS gepflegte Pascal-Skripte realisiert werden. Jeder Endpunkt bekommt eine eigene Adresse, eine eigene Logik und eine eigene Berechtigungsstruktur. Rueckgaben erfolgen ausschliesslich im JSON-Format. Damit lassen sich beliebige Lese- und Schreibvorgaenge auf der OBS-Datenbank realisieren, ohne dass externe Systeme direkten Datenbank-Zugriff erhalten - das ganze OBS-Regelwerk (Rechte, Validierung, Geschaeftslogik) bleibt aktiv.

Im Ergebnis ist der REST-Server kein einzelnes Feature, sondern ein Werkzeugkasten: Was an Daten oder Funktionen in OBS verfuegbar ist, kann ueber den REST-Server auch nach aussen angeboten - oder von aussen entgegengenommen - werden. Die Bandbreite reicht vom einfachen Lese-Endpunkt fuer ein Webseiten-Widget bis hin zu kompletten B2B-Integrationen mit Mandanten- und Rollen-Trennung.

Aufruf des Moduls in OBS: Stammdaten -> Z Weitere Stammdaten -> REST-Server

Anwendungsbereiche

Die folgenden Einsatzfaelle sind typische Beispiele, an denen sich der praktische Nutzen ablesen laesst. Es ist keine abschliessende Liste - alles, was sich in OBS-Skripten abbilden laesst, kann auch ueber einen Endpunkt bereitgestellt werden.

Webseiten und Kundenportale

  • Live-Daten auf der eigenen Webseite: Lagerbestaende, Verfuegbarkeiten, Preise, Auftragsstatus aus OBS direkt anzeigen, ohne taegliche Datei-Exports.
  • Kundenportale: Kunden sehen ihre offenen Posten, Auftragshistorie, Lieferscheine. Die Seite holt sich die Daten zur Anzeigezeit direkt aus OBS, jeder Kunde sieht nur seine eigenen Daten.
  • Trackingseiten: Status einer Bestellung, eines Auftrags oder einer Reparatur fuer Endkunden, abrufbar ueber eine Sendungsnummer.

Mobile Anwendungen und Aussendienst

  • Mobile Zeiterfassung: Mitarbeiter buchen Anfang, Pause und Ende ueber Smartphone oder Tablet, die Daten landen direkt in OBS - ohne Zettelwirtschaft.
  • QR-/Barcode-Scanner und Lagergeraete: Wareneingang, Inventur, Kommissionierung direkt in OBS abbilden, ohne zwischengeschaltete Software.
  • Aussendienst-Apps: Techniker sehen ihre Auftraege, dokumentieren Einsaetze, erfassen Material - synchronisiert mit OBS.

Anbindung von Drittsystemen

  • Webshops: Bestellungen werden direkt vom Shop in OBS gemeldet, Lagerbestaende und Preise vom Shop bei OBS abgefragt.
  • Buchhaltungs- und ERP-Systeme: Bidirektionaler Austausch von Belegen, Stammdaten und Buchungen.
  • CRM- und Marketing-Tools: Personendaten, Aktivitaeten oder Mailing-Empfaenger werden synchron gehalten.
  • Logistikdienstleister: Versandauftraege werden uebergeben, Tracking-Informationen zurueckgeliefert.

Automatisierte Rueckmeldungen (WebHooks)

  • Zahlungs-Callbacks: Bezahldienste (z.B. PayPal, Klarna, Stripe) melden den Zahlungseingang an einen WebHook-Endpunkt - OBS bucht automatisch.
  • Versanddienste: Statusmeldungen (verschickt, zugestellt, retour) werden direkt im passenden Vorgang dokumentiert.
  • Cloud-Workflows: Externe Automatisierungs-Plattformen (Make, Zapier, n8n, ...) stossen OBS-Vorgaenge an oder werden von OBS aus angesprochen.

Geschaeftspartner-Kommunikation (B2B)

  • Lieferanten-Schnittstelle: Bestellungen werden automatisch uebergeben, Auftragsbestaetigungen und Lieferavise zurueckgespielt.
  • Kunden-Schnittstelle: Grosskunden bestellen direkt aus ihrem ERP heraus, Stammdaten und Konditionen werden zentral gepflegt.
  • Sichere Maschine-zu-Maschine-Kommunikation: Mit Mutual-TLS (mTLS) wird sichergestellt, dass nur die freigeschalteten Partnersysteme - und niemand sonst - mit OBS sprechen koennen.

Interne Microservices und Automatisierungen

  • Eigene kleine Hilfs-Tools: Zeitschaltautomatik, Reporting-Generator, Sammelaktionen, die aus mehreren Quellen Daten in OBS verarbeiten.
  • Verbindung mehrerer Standorte: Verteilte Systeme tauschen Daten ueber definierte Endpunkte aus, ohne offene Datenbankverbindungen.
  • Datenbereitstellung fuer Dashboards und Auswertungen: BI-Tools (Power BI, Grafana, ...) lesen aufbereitete Kennzahlen direkt aus OBS.

Was bedeutet das wirtschaftlich?

  • Manuelle Arbeit faellt weg. Daten werden nicht mehr aus OBS exportiert, per Mail geschickt und woanders eingelesen - sie fliessen direkt.
  • Fehler werden weniger. Jede manuelle Stelle ist eine moegliche Fehlerquelle; jede Automatisierung eine Stelle, an der nichts mehr schiefgehen kann.
  • Neue Geschaeftsmodelle werden moeglich. Kunden- und Lieferantenportale, Self-Service-Funktionen, App-Anbindungen lassen sich aufbauen, ohne ein zweites System pflegen zu muessen.
  • Bestehende Software bleibt verbunden. Statt eine vorhandene Anwendung abloesen zu muessen, kann sie ueber den REST-Server an OBS angedockt werden - in beiden Richtungen.
  • Skaliert mit: Was klein anfaengt (ein einzelner Endpunkt fuer eine Webseite) kann zu einer kompletten Integrations-Plattform ausgebaut werden, ohne dass die Grundlage gewechselt werden muss.

Architektur im Überblick

Der REST-Server besteht aus mehreren aufeinander aufbauenden Bausteinen, die alle in OBS gepflegt werden:

Baustein Tabelle Zweck
Server RESTSRV_SERVER TLS-Profil + eigene HTTP-Server-Instanz, kann mehrfach existieren
Bindung RESTSRV_BINDINGS IP-Adresse + Port pro Server
Zugang RESTSRV_ACCOUNT API-Key, optionale Host- und CORS-Beschränkung, optionale JWT-Konfiguration
Endpunkt RESTSRV_ENDPOINTS Skript, das die Anfrage bearbeitet, einem Server fest zugeordnet
Berechtigung RESTSRV_ACCESS Verbindet Zugang und Endpunkt
Protokoll RESTSRV_PROTO Laufende Ereignisse, Fehler, Audit-Einträge
Statistik RESTSRV_STATS Aufrufzähler, Antwortzeiten und HTTP-Status pro Endpunkt

Eine Anfrage durchläuft folgende Stationen:

  1. Rate-Limit-Prüfung (pro IP und global)
  2. Authentifizierung über den API-Key (Header apikey)
  3. CORS-Prüfung (sofern Origin-Header gesetzt)
  4. Optional: JWT-Prüfung (sofern für den Zugang aktiviert)
  5. Auflösung von Endpunkt / Sub-URL / Version
  6. Prüfung der Berechtigung (Zugang -> Endpunkt)
  7. Ausführung des Endpunkt-Skripts (oder WebHook-Antwort)
  8. JSON-Antwort, Statistik-Eintrag, Protokoll-Eintrag

Adressierung

Ein Endpunkt wird über drei Bestandteile angesprochen: Endpunkt-Name, optionale Sub-URL und Version:

http://[Hostadresse][:Port]/[Endpunkt][/Sub-URL]/[Version]

Beispiele:

https://api.meinserver.de/kalender/v1
https://api.meinserver.de/email/mein_konto/v1.0
https://api.meinserver.de/zeiterfa/mobile/v2

Durch die Versionierung kann eine Endpunkt-Funktionalität verändert werden, ohne bestehende Konsumenten zu brechen.

Unterstützte HTTP-Methoden

Der Server akzeptiert die Methoden GET, POST, PUT, DELETE und PATCH sowie OPTIONS (CORS-Preflight, ohne Skript-Aufruf). Jede Methode wird im Endpunkt-Skript als gleichnamige Funktion implementiert. Siehe Scripting.

Sicherheitsmerkmale

Der REST-Server enthält eine Reihe fest verdrahteter Schutzmechanismen:

  • Rate-Limit: max. 10 fehlgeschlagene und 120 erfolgreiche Anfragen pro IP und 60 Sekunden, max. 600 Anfragen global pro 60 Sekunden. Beim Überschreiten wird HTTP 429 zurückgegeben.
  • Body-Limit: max. 10 MB Request-Body, max. 1024 Zeichen pro Header- oder Query-Parameter.
  • Sensible Felder (password, token, secret, apikey, authorization, cookie, ...) werden in Protokoll-Ausgaben automatisch maskiert.
  • Reserviertes Präfix: Parameter-Namen mit Präfix _OBS_ können von aussen nicht gesetzt werden, sie sind für den Server reserviert (z.B. JWT-Claims).
  • Geblockte Header: authorization, cookie, proxy-authorization, x-forwarded-for, x-real-ip, apikey, api_key werden nicht an das Skript durchgereicht.
  • TLS: Bei Profilen mit aktivem TLS fährt der Server ohne Zertifikat und Key nicht hoch. Plain-HTTP ist nur für ein dediziertes Debug-Profil möglich.
  • mTLS (Mutual TLS): erzwingt, dass jeder Client ein gültiges Client-Zertifikat vorlegt. Optional kann pro Zugang ein erwarteter Subject-DN hinterlegt werden.
  • DNS-Cache: Host-zu-IP-Auflösungen für die Zugangs-Host-Prüfung werden 5 Minuten gecached.

Protokoll

Die Tabelle RESTSRV_PROTO enthält alle relevanten Ereignisse: erfolgreiche und abgelehnte Anfragen, TLS-/JWT-Fehler, Bindungs-Ereignisse, Skript-Fehler. Einträge sind nach Datum, Uhrzeit und Host (IP oder Account-Name) sortiert. Das Protokoll ist die erste Anlaufstelle bei Störungen.

Statistik

Die Tabelle RESTSRV_STATS enthält eine Statistik aller bearbeiteten Anfragen mit Zugang, Endpunkt, Methode, HTTP-Status und Laufzeit in Millisekunden. Aufruf der Statistik:

  • Aus der Endpunkt-Liste: F8 zeigt die Statistik des markierten Endpunkts.
  • Aus der Zugänge-Liste: F8 zeigt die Statistik des markierten Zugangs.

Konsole

Wird der REST-Server nicht als Dienst, sondern interaktiv gestartet, erscheint eine farbige Konsole mit Live-Log. Die wichtigsten Befehle:

Befehl Wirkung
show <n> Zeigt die Details zum Debug-Eintrag #n (z.B. Request-Header, Response-Body), JSON wird farbig formatiert
exit / quit Beendet den Server geordnet

Im Service-Modus (Windows-Dienst) ist die Konsole nicht sichtbar. Alle Einträge landen dort ausschliesslich in der Tabelle RESTSRV_PROTO.

Weiterführende Seiten