Release-API
Allgemeines
MACH formsolutions stellt eine Schnittstelle zur Verfügung, die alle im System hinterlegten Veröffentlichungen ausliest. Diese Veröffentlichungen beinhalten sowohl Assistenten als auch PDF-Formulare.
Die Architektur beruht auf dem REST-Standard und ist in der Lage die angefragten Dokumente entweder im JSON-Format oder im CSV-Format auszuliefern.
Wie bei allen von MACH formsolutions angebotenen Schnittstellen unterliegt auch diese einem Authentifizierungskonzept. Hierbei werden die Zugriffsberechtigungen auf die getätigte Anfrage geprüft und sichergestellt, dass keine Dokumente ausgeliefert werden, auf die der Zugriff verweigert ist. Eine Besonderheit hierbei stellt der Supermandant dar, welcher als übergeordnete Instanz Zugriff auf alle unterliegenden Mandanten hat.
Voraussetzungen
Um die Release-API nutzen zu können sind folgende Voraussetzungen zu erfüllen:
- Es muss für die Authentifizierung die Mandantennummer und der API-Key vorhanden sein.
Verwendung der Schnittstelle
Die API wurde nicht für den Browsergebrauch konzipiert. Um die Anbindung zu testen, werden externe Tools wie beispielsweise Insomnia oder Postman empfohlen.
Da die Schnittstelle auf dem REST-Standard beruht, kann diese über eine URL erreicht werden. Hierbei gibt es einen festen Basispfad und einen entsprechenden Endpunkt. Der Basispfad ist bei jedem Aufruf gleich, wobei sich die Endpunkte je nach Funktion unterscheiden können. Ein Endpunkt spricht eine Funktionalität der Schnittstelle an. Da der Basispfad immer gleich ist, können über diverse Endpunkte mehrere Funktionalitäten in die Schnittstelle verbaut werden. Weitere Verwendungsmöglichkeiten finden Sie in unserer Swagger-Dokumentation.
Einschränkungen
Zur Zeit gelten für die Schnittstelle folgende Einschränkungen:
- Es werden nicht alle möglichen Konfigurationsoptionen angezeigt
- Fehlerhafte Konfigurationsfelder werden ausgeblendet
Weiterhin werden nur "gültige" Veröffentlichungen angezeigt. Für Assistenten bedeutet das, dass
- die Gültigkeitsperiode für den Assistenten bereits begonnen hat
- die Gültigkeitsperiode des Assistenten noch nicht beendet ist
Für PDF bedeutet das, dass
- die aktuelle Formularversion aktiv ist
Ausgabeformate
Ausgabe im JSON-Format (Standard)
Werden keine Header-Parameter mitgegeben, erfolgt die Ausgabe standardmäßig im JSON-Format.
Ausgabe im CSV-Format
Mit dem Header-Parameter "accept = text/csv" kann die Ausgabe im CSV-Format erfolgen.
Authentifizierung
Um die Schnittstelle verwenden zu können, muss eine Authentifizierung vorgenommen werden. Für diese sind die Mandantennummer und ein API-Key notwendig, wobei die Mandantennummer als Benutzername und der API-Key als Passwort gilt. Die verwendete Authentifizierungsart ist eine Basis-Authentifizierung.
Einen API-Key können Sie beim Betreiber des Formularservers beantragen.
Authentifizierung als Supermandant
Bei der Authentifizierung als Supermandant liegen Berechtigungen auf alle im System hinterlegten Mandanten vor. Somit ist es möglich, alle Veröffentlichungen auf dem Formularserver mandantenübergreifend auszulesen. Gleichzeitig bietet die Schnittstelle über den Parameter "organizationId" die Möglichkeit, jeweils nur die Veröffentlichungen für einen oder mehrere Mandanten auszulesen.
Authentifizierung als einzelner Mandant
Bei der Authentifizierung als einzelner Mandant liegen Berechtigungen auf alle Veröffentlichungen des eigenen Mandanten vor. Es werden die Veröffentlichungen von Assistenten und PDF-Formularen des authentifizierten Mandanten übergeben.
Beispielanwendung (Swagger-Dokumentation)
Auf dem Formularserver ist mit der Swagger-Anwendung eine übersichtliche Darstellung und technische Dokumentation der Schnittstelle verfügbar. Mit dieser Anwendung kann die Funktionalität auch getestet werden.
Die Adresse der Swagger-Anwendung der Release-API lautet < Formularserveradresse >/release-api/swagger-ui/index.html
Um die Anwendung aufzurufen, setzen Sie die Adresse des jeweiligen Formularservers ein.
Für Funktionstests sind gültige Authentifizierungsdaten für den jeweiligen Server erforderlich (Mandantennummer und API-Key).