Änderungen von Dokument Release-API

Zuletzt geändert von MACH ProForms GmbH am 25.06.2024

Von Version 18.1
bearbeitet von MACH ProForms GmbH
am 15.02.2021
Änderungskommentar: Es gibt keinen Kommentar für diese Version
Auf Version 26.1
bearbeitet von MACH ProForms GmbH
am 25.06.2024
Änderungskommentar: Es gibt keinen Kommentar für diese Version

Zusammenfassung

Details

Seiteneigenschaften
Inhalt
... ... @@ -1,189 +1,92 @@
1 1  ## Allgemeines
2 2  
3 -Form-Solutions 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 Form-Solutions 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. Im nachfolgenden Dokument werden die genauen Funktionalitäten im Einzelnen beschrieben.
3 +MACH ProForms 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 ProForms 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. Im nachfolgenden Dokument werden die genauen Funktionalitäten im Einzelnen beschrieben. Wir stellen seit dem Release [4.62.0](https://wiki.form-solutions.de/wiki/docwiki/view/Main/13_Release-Notes/) mehrere Versionen der Release-API zur Verfügung. Die ausführliche Dokumentation finden Sie im Rahmen der Swagger-Dokumentation. Den Link hierfür finden Sie am Ende der Seite. Was wird durch die Version 3 der Release-API neu zur Verfügung gestellt? Es werden nun zusätzlich zu der Leika-ID auch die OZG-ID's in der Response der Schnittstelle bereitgestellt.
4 4  
5 -___
6 -
7 7  ## Voraussetzungen
8 8  
9 9  Um die Release-API nutzen zu können sind folgende Voraussetzungen zu erfüllen:
10 10  
11 -- Der Formularserver benötigt mindestens das [Release](https://wiki.form-solutions.de/wiki/docwiki/view/Main/13_Release-Notes/) mit der Version 4.46.0
12 -- Es muss für die Authentifizierung die Mandantennummer und der API-Key vorhanden sein.
9 +* Der Formular-Server benötigt mindestens das Release mit der Version 4.46.0
10 +* Es muss für die Authentifizierung die Mandantennummer und der API-Key vorhanden sein.
13 13  
14 -___
12 +## Verwendung der Schnittstelle
15 15  
14 +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.
16 16  
17 -## Verwenden der Schnittstelle
16 +## Einschnkungen
18 18  
19 -### Einstiegspunkt
18 +Im derzeitigen Zustand hat die Schnittstelle folgende Einschränkungen:
20 20  
21 -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.
20 +* Es werden nicht alle möglichen Konfigurationsoptionen angezeigt
21 +* Fehlerhafte Konfigurationsfelder werden ausgeblendet
22 22  
23 -```javascript
24 -Basispfad:
25 -https://<server-name>/release-api
26 -```
23 +Weiterhin werden nur "gültige" Veröffentlichungen angezeigt. Für Assistenten bedeutet das, dass
27 27  
28 -#### Endpunkte
25 +* die Gültigkeitsperiode für den Assistenten bereits begonnen hat
26 +* die Gültigkeitsperiode des Assistenten noch nicht beendet ist
29 29  
30 -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.
31 -Im Folgenden wird eine Auflistung aller aktuell unterstützten Endpunkte aufgeführt.
28 +Für PDF bedeutet das, dass
32 32  
33 -```javascript
34 -Endpunkt: /releases
30 +* die aktuelle Formularversion aktiv ist
35 35  
36 -Pfadbeispiel:
37 - https://<server-name>/release-api/releases
38 -```
32 +Die API wurde nicht für den Browser gebrauch konzipiert. Um die Anbindung zu testen, werden externe Tools wie beispielsweise "Insomnia" oder "Postman" empfohlen.
39 39  
40 -_Beschreibung: Der hier aufgeführte Endpunkt liefert alle Veröffentlichungen eines Mandanten (sowohl Assistenten als auch PDF-Formulare) zurück. Hierbei besteht die Möglichkeit sich als einzelner Mandant oder als Supermandant anzumelden. Die detaillierte Unterscheidung dieser beiden Methoden findet sich unter dem Punkt Authentifizierung._
34 +## Ausgabeformate
41 41  
42 -```javascript
43 -Endpunkt: /releases/assistants
36 +Die Schnittstelle unterstützt insgesamt zwei unterschiedliche Ausgabeformate. Standardmäßig wird hier ein Dokument im JSON-Format ausgehändigt, während über einen Parameter im Header der Anfrage die Ausgabe im CSV-Format erzwungen werden kann.
44 44  
45 -Pfadbeispiel:
46 - https://<server-name>/release-api/releases/assistants
47 -```
38 +### Ausgabe im JSON-Format
48 48  
49 -_Beschreibung: Der hier aufgeführte Endpunkt liefert alle Veröffentlichungen von Assistenten eines Mandanten zurück. Hierbei besteht die Möglichkeit sich als einzelner Mandant oder als Supermandant anzumelden. Die detaillierte Unterscheidung dieser beiden Methoden findet sich unter dem Punkt Authentifizierung._
40 +Werden keine Header-Parameter mitgegeben, erfolgt die Ausgabe standardmäßig im JSON-Format. Hierbei wird eine Ausgabe erzeugt, welche verschiedene Felder beinhaltet.
50 50  
51 -```javascript
52 -Endpunkt: /releases/pdfs
42 +### Ausgabe im CSV-Format
53 53  
54 -Pfadbeispiel:
55 - https://<server-name>/release-api/releases/pdfs
56 -```
44 +Mit dem Header-Parameter „accept“ kann die Ausgabe im CSV-Format erzwungen werden. Hierbei sollte der oben erwähnte Parameter wie folgt aufgebaut sein: "accept = text/csv". Auch hier beinhaltet die Ausgabe verschiedene Felder.
57 57  
58 -_Beschreibung: Der hier aufgeführte Endpunkt liefert alle Veröffentlichungen von PDF-Formularen eines Mandanten zurück. Hierbei besteht die Möglichkeit sich als einzelner Mandant oder als Supermandant anzumelden. Die detaillierte Unterscheidung dieser beiden Methoden findet sich unter dem Punkt Authentifizierung._
46 +## Authentifizierung
59 59  
60 -```javascript
61 -Endpunkt: /releases/secureIds
48 +Um die Schnittstelle verwenden zu können, muss eine Authentifizierung vorgenommen werden. Für diese ist die Mandantennummer und der dafür hinterlegte API-Schlüssel notwendig, wobei die Mandantennummer als Benutzername und der API-Schlüssel als Passwort gilt. Sollte noch kein passender API-Schlüssel vorliegen, kann dieser beim Administrator des Formular-Servers beantragt werden.
62 62  
63 -Pfadbeispiele:
64 - https://<server-name>/release-api/releases/secureIds
65 - https://<server-name>/release-api/releases/assistants/secureIds
66 - https://<server-name>/release-api/releases/pdfs/secureIds
67 -```
50 +Die erforderlichen Authentifizierungsdaten dienen zu Demonstrationszwecken und lauten wie folgt:
51 +_**Mandantennummer:**_ 77777777-0000
52 +_**API-Schlüssel:**_ yIJNM2BS6LI0lS25Qa5xbtEK
68 68  
69 -_Beschreibung: Der hier aufgeführte Endpunkt liefert ausschließlich alle "SecureId's" der angefragten Veröffentlichungen zurück. Eine SecureId dient zur eindeutigen Idenfizierung einer Veröffentlichung. Hierbei besteht die Möglichkeit sich als einzelner Mandant oder als Supermandant anzumelden. Die detaillierte Unterscheidung dieser beiden Methoden findet sich unter dem Punkt Authentifizierung._
54 +> {{icon name="far fa-info-circle" size="3"/}} _**Hinweis:**_
55 +>
56 +> Die verwendete Authentifizierungsart ist eine Basis-Authentifizierung.
70 70  
71 -![[Anzeige der SecureID|@Release-API-SecureID.jpg]]
58 +### Authentifizierung als Supermandant
72 72  
73 -### Authentifizierung
60 +Bei der Authentifizierung als Supermandant liegen Berechtigungen auf alle im System hinterlegten Benutzer vor. Somit ist es möglich, alle Veröffentlichungen auf dem Formular-Server mandantenübergreifend auszulesen. Gleichzeitig bietet die Schnittstelle über einen Parameter die Möglichkeit jeweils nur die Veröffentlichungen für einen oder mehrere Mandanten auszulesen. Dieses Verhalten wird über den Parameter "organizationId" gesteuert.
74 74  
75 -Um die Schnittstelle verwenden zu können, muss eine Authentifizierung vorgenommen werden.
76 -Für diese ist die Mandantennummer und der dafür hinterlegte API-Schlüssel notwendig, wobei die Mandantennummer als Benutzername und der API-Schlüssel als Passwort gilt.
77 -Sollte noch kein passender API-Schlüssel vorliegen, kann dieser beim Administrator des Formularservers beantragt werden.
78 -Generell werden die beiden im Folgenden aufgeführten Authentifizierungsarten unterschieden.
62 +#### Aufruf ohne Parameter "organizationId"
79 79  
80 -Mit dem folgenden Link wird auf eine Oberfläche weitergeleitet, bei der die Schnittstelle auf ihre Funktionalität getestet werden kann.
81 -Die erforderlichen Authentifizierungsdaten dienen zu Demonstrationszwecken und lauten wie folgt:
64 +_**Pfadbeispiel:**_ <https://>/release-api/releases
65 +_**Beschreibung:**_ Wird die Schnittstelle als Supermandant ohne den Parameter "organizationId" aufgerufen, so werden alle Veröffentlichungen aller im Formularserver hinterlegten Mandanten ausgelesen. Dies betrifft sowohl Assistenten als auch PDF-Formulare.
82 82  
83 -*Beispiel: [https://vertrieb.form-solutions.de/release-api/swagger-ui.html](https://vertrieb.form-solutions.de/release-api/swagger-ui.html)*
84 -<br>
85 -*Mandantennummer: 88888888-8888*
86 -<br>
87 -*API-Schlüssel: npcnqwpefwAFWFAFAFqwcqcqwc23rf23rzhbnerg*
67 +#### Aufruf mit Parameter "organizationId"
88 88  
69 +_**Pfadbeispiel:**_ <https://>/release-api/releases?organizationId=12345678-1234
70 +_**Beschreibung:**_ Wird die Schnittstelle als Supermandant mit dem Parameter "organizationId" aufgerufen, so werden alle Veröffentlichungen für den in dem Parameter aufgeführten Mandanten ausgelesen. Dies betrifft sowohl Assistenten als auch PDF-Formulare. Zusätzlich zu dieser Funktion können auch mehrere Mandantennummern kommasepariert als Wert des Parameters eingetragen werden. Somit würden alle Veröffentlichungen der angegebenen Mandantennummern ausgelesen werden.
89 89  
72 +### Authentifizierung als einzelner Mandant
90 90  
91 -> ***Hinweis:***
92 -> Die verwendete Authentifizierungsart ist eine [Basis-Authentifizierung](https://de.wikipedia.org/wiki/HTTP-Authentifizierung#Basic_Authentication).
74 +Bei der Authentifizierung als einzelner Mandant liegen Berechtigungen auf alle Veröffentlichungen des eigenen Mandanten vor. Um die Schnittstelle nach einer solchen Authentifizierung nutzen zu können, wird die oben beschriebene Basis-URL sowie der gewünschte Endpunkt verwendet.
93 93  
94 -#### Authentifizierung als Supermandant
76 +_**Pfadbeispiel:**_ <https://>/release-api/releases
95 95  
96 -Bei der Authentifizierung als Supermandant liegen Berechtigungen auf alle im System hinterlegten Benutzer vor. Somit ist es möglich, alle Veröffentlichungen auf dem Formularserver mandantenübergreifend auszulesen. Gleichzeitig bietet die Schnittstelle über einen Parameter die Möglichkeit auch nur die Veröffentlichungen für einen oder mehrere Mandanten auszulesen. Dieses Verhalten wird über den Parameter \<organizationId\> gesteuert.
78 +Da mit dieser Art der Authentifizierung ein Mandant bereits eindeutig identifiziert sind, wird an dieser Stelle keine Filterung der Mandanten über einen gesonderten Parameter benötigt. Mit der Nutzung der oben beschriebenen URL werden nun alle Veröffentlichungen von Assistenten und PDF-Formularen des angemeldeten Mandanten ausgehändigt.
97 97  
98 -**Aufruf ohne Parameter \organizationId\**
80 +## Beispielanwendung (Swagger-Dokumentation)
99 99  
100 -```javascript
101 -Pfadbeispiel: https://<server-name>/release-api/releases
102 -```
82 +Um die Schnittstelle beispielhaft bedienen zu können, wird eine Demoanwendung unter folgender URL bereitgestellt: <https://vertrieb.form-solutions.de/release-api/swagger-ui/index.html>
103 103  
104 -_Beschreibung: Wird die Schnittstelle als Supermandant ohne den Parameter < organizationId > aufgerufen, so werden alle Veröffentlichungen aller im Formularserver hinterlegten Mandanten ausgelesen. Dies betrifft sowohl Assistenten als auch PDF-Formulare._
84 +> _**Achtung**_ Die oben verlinkte Swagger-Dokumentation greift auf den internen Vertriebsserver der MACH ProForms GmbH zu. Um die Dokumentation auf anderen Servern einzusehen muss die URL folgendem Format entsprechen: < BASIS_URL >/release-api/swagger-ui/index.html
105 105  
86 +Ebenso steht dem Anwender mit dieser Beispielanwendung eine technische Dokumentation zur Verfügung, welche die einzelnen Ressourcen detaillierter beschreibt.
106 106  
107 -**Aufruf mit Parameter \organizationId\**
88 +### Testdaten zu Demonstrationszwecken
108 108  
109 -```javascript
110 -Pfadbeispiel: https://<server-name>/release-api/releases?organizationId=12345678-1234
111 -```
112 -
113 -Beschreibung: Wird die Schnittstelle als Supermandant mit dem Parameter < organizationId > aufgerufen, so werden alle Veröffentlichungen für den in dem Parameter aufgeführten Mandanten ausgelesen. Dies betrifft sowohl Assistenten als auch PDF-Formulare. Zusätzlich zu dieser Funktion können auch mehrere Mandantennummern kommasepariert als Wert des Parameters eingetragen werden. Somit würden alle Veröffentlichungen der angegebenen Mandantennummern ausgelesen werden.
114 -
115 -#### Authentifizierung als einzelner Mandant
116 -
117 -Bei der Authentifizierung als einzelner Mandant liegen Berechtigungen auf alle Veröffentlichungen des eigenen Mandanten vor. Um die Schnittstelle nach einer solchen Authentifizierung nutzen zu können, wird die oben beschriebene Basis-Url sowie der gewünschte Endpunkt verwendet.
118 -
119 -```javascript
120 -Pfadbeispiel: https://<server-name>/release-api/releases
121 -```
122 -
123 -Da wir mit dieser Art der Authentifizierung bereits eindeutig als Mandant identifiziert sind, wird an dieser Stelle keine Filterung der Mandanten über einen gesonderten Parameter benötigt. Mit der Nutzung der oben beschriebenen URL werden nun alle Veröffentlichungen von Assistenten und PDF-Formularen des angemeldeten Mandanten ausgehändigt.
124 -
125 -___
126 -
127 -## Parameter
128 -
129 -Über die nachfolgenden Parameter kann die Schnittstelle entsprechende Filterungen der Suchanfragen vornehmen. Diese werden hierbei als Query-Parameter übergeben.
130 -
131 -> **organizationId**
132 -
133 -*Beschreibung: Durch diesen Parameter kann gesteuert werden, welche Mandanten von der Suchanfrage betroffen sind. Liegen keine Berechtigungen auf die angegebenen Mandantennummern vor, so werden diese nicht bei der Suche berücksichtigt. Es können mehrere Mandantennummern kommasepariert eingegeben werden.*
134 -
135 -```javascript
136 -Pfadbeispiel: https://<server-name>/release-api/releases?organizationId=12345678-1234
137 -```
138 -
139 -> **secureId**
140 -
141 -*Beschreibung: Durch diesen Parameter können einzelne Veröffentlichungen mit den angegebenen secureId's an allen Endpunkten ermittelt werden. Die Werte können kommasepariert eingegeben werden.*
142 -
143 -```javascript
144 -Pfadbeispiel: https://<server-name>/release-api/releases?secureId=5b9b53dad5de93019b42df8c
145 -```
146 -
147 -### Ausgabeformate
148 -
149 -Die Schnittstelle unterstützt insgesamt zwei unterschiedliche Ausgabeformate. Standardmäßig wird hier ein Dokument im JSON-Format ausgehändigt, während über einen Parameter im Header der Anfrage die Ausgabe im CSV-Format erzwungen werden kann.
150 -
151 -#### Ausgabe im JSON-Format
152 -
153 -Werden keine Header-Parameter mitgegeben, erfolgt die Ausgabe standardmäßig im JSON-Format. Hierbei wird eine Ausgabe erzeugt, welche verschiedene Felder beinhaltet. Welche Bedeutung diese Felder haben und wie eine Beispielausgabe aussehen kann, wir [[hier|Main.02_FSSchnittstellen.02_ReleaseAPI.01_Ressourcen.01_JSON]] beschrieben.
154 -
155 -#### Ausgabe im CSV-Format
156 -
157 -Mit dem Header-Parameter „accept“ kann die Ausgabe im CSV-Format erzwungen werden. Hierbei sollte der oben erwähnte Parameter wie folgt aufgebaut sein: *accept = text/csv*. Auch hier beinhaltet die Ausgabe verschiedene Felder, der Bedeutung inklusive einem Ausgabebeispiel [[hier|Main.02_FSSchnittstellen.02_ReleaseAPI.01_Ressourcen.02_CSV]] nachgelesen werden kann.
158 -
159 -___
160 -
161 -## Einschränkungen
162 -
163 -Im derzeitigen Zustand hat die Schnittstelle folgende Einschränkungen:
164 -- Es werden nicht alle möglichen Konfigurationsoptionen angezeigt
165 -- Fehlerhafte Konfigurationsfelder werden ausgeblendet
166 -
167 -Weiterhin werden nur "gültige" Veröffentlichungen angezeigt. Für Assistenten bedeutet das, dass
168 -
169 -- der Assistent seine Gültigkeitsperiode bereits begonnen hat
170 -- der Assistent seine Gültigkeitsperiode nicht beendet hat
171 -
172 -Für PDF bedeutet das, dass
173 -- die aktuelle Formularversion aktiv ist
174 -
175 -
176 -Zudem ist die Schnittstelle nicht zur Verwendung mit Browsern gedacht. Es werden daher keine Garantien über die vollständige Kompatibilität der Schnittstelle mit Browsern gemacht. Die browsergestützte Verwendung erfolgt auf eigene Gefahr.
177 -Um die Schnittstelle verwenden zu können, kann diese entweder programmatisch oder über entsprechende Hilfsprogramme (Insomnia, Postman, ...) angesprochen werden.
178 -___
179 -
180 -## Beispielanwendung
181 -
182 -Um die Schnittstelle beispielhaft bedienen zu können, wird eine Demoanwendung unter folgender URL bereitgestellt: https://vertrieb.form-solutions.de/release-api/swagger-ui.html
183 -
184 -Ebenso steht dem Anwender mit dieser Beispielanwendung eine technische Dokumentation bereit, welche die einzelnen Ressourcen detaillierter beschreibt.
185 -
186 -
187 -
188 -
189 -
90 +_**organizationID:**_ 77777777-0000
91 +_**secureID (Assistent):**_ 6050847cb2e9650a8ab19c83
92 +_**secureID (PDF):**_ zGVrF5v6N8XzH5j7kJN84qtKrM8TA9A