Wiki-Quellcode von Submission-API
Version 5.1 von MACH ProForms GmbH am 15.02.2021
Zeige letzte Bearbeiter
author | version | line-number | content |
---|---|---|---|
1 | ## Authentifizierung | ||
2 | |||
3 | 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 Fomularservers beantragt werden. | ||
4 | |||
5 | Mit dem folgenden Link wird auf eine Oberfläche weitergeleitet, bei der die Schnittstelle auf ihre Funktionalität getestet werden kann. | ||
6 | Die erforderlichen Authentifizierungsdaten dienen zu Demonstrationszwecken und lauten wie folgt: | ||
7 | |||
8 | *Beispiel: [https://vertrieb.form-solutions.de/submission/swagger-ui/index.html](https://vertrieb.form-solutions.de/submission/swagger-ui/index.html)* | ||
9 | <br> | ||
10 | *Mandantennummer: 88888888-8888* | ||
11 | <br> | ||
12 | *API-Schlüssel: npcnqwpefwAFWFAFAFqwcqcqwc23rf23rzhbnerg* | ||
13 | |||
14 | > ***Hinweis:*** | ||
15 | > Die verwendete Authentifizierungsart ist eine [Basis-Authentifizierung](https://de.wikipedia.org/wiki/HTTP-Authentifizierung#Basic_Authentication). | ||
16 | |||
17 | ___ | ||
18 | |||
19 | ## Base-URL | ||
20 | |||
21 | Für alle URL-Endpunkte ist ein Prefix im folgenden Stil zu verwenden:\ | ||
22 | `https://<Server-Name>/submission/api/v2/` | ||
23 | |||
24 | ___ | ||
25 | |||
26 | ## Einreichungen | ||
27 | |||
28 | Unter dem `submission`-Endpunkt lassen sich Informationen zu eingegangenen Formularen abrufen. Zusätzlich kann Bearbeitungsstatus zurückgemeldet werden. | ||
29 | |||
30 | ### Übersicht | ||
31 | |||
32 | `/submission/<Mandant>/<Formularnummer>`\ | ||
33 | Mittels der Mandantennummer und der Formularnummer lässt sich eine Übersicht an eingegangenen Formularen abrufen. Dabei sind nur Metadaten enthalten, z. B. | ||
34 | |||
35 | ``` | ||
36 | [{ | ||
37 | "transID":"AS_940000-gsh7ntqS", | ||
38 | "userID":"22222222-2222-0126", | ||
39 | "identifier":"AS_940000", | ||
40 | "applicantName":"Mustermann", | ||
41 | "applicantEMail":null, | ||
42 | "status":"NEW", | ||
43 | "options": { | ||
44 | "submissionType":"REGULAR", | ||
45 | "paymentType":"NONE", | ||
46 | "npa":false | ||
47 | }, | ||
48 | "payload":null, | ||
49 | "pdf":null, | ||
50 | "xml":null, | ||
51 | "attachments":null, | ||
52 | "submissionDate":1455801335305 | ||
53 | }] | ||
54 | ``` | ||
55 | |||
56 | Wird beim Assistentenstart eine Ordnungsziffer mitgegeben enthält das Attribut payload die übergebene Ordnungsziffer als eingebettetes JSON Element. | ||
57 | |||
58 | Die Anzeige kann eingeschränkt werden, indem als Abfrage-Parameter der gewünschte Status mit angegeben wird. So kann z. B. mittels `?status=NEW` auf neue Anträge eingeschränkt werden. Ebenso ist es möglich mehrere Stati gleichzeitig für die Filterung anzugeben. Hierzu stehen zwei Möglichkeiten zur Verfügung: | ||
59 | |||
60 | 1. `?status=NEW&status=READ` | ||
61 | 2. `?status=NEW,READ` | ||
62 | |||
63 | Gültige Statuswerte sind: | ||
64 | |||
65 | - NEW | ||
66 | - READ | ||
67 | - CLOSED | ||
68 | - PRELIMINARY | ||
69 | - HIDDEN | ||
70 | - DELETED | ||
71 | |||
72 | Zusätzlich kann der Abfragezeitraum über die Angabe eines `Last-Modified`-Headers eingeschränkt werden. Dabei handelt es sich um den Einreichezeitpunkt, nicht die letzte Statusänderung. | ||
73 | |||
74 | ### Detailauskunft | ||
75 | |||
76 | Sollen alle Daten eines einzelnen Formulareingangs abgerufen werden, ist die URL um die Transaktions-ID zu ergänzen:\ | ||
77 | `/submission/<Mandant>/<Formularnummer>/<Transaktions-ID>/metadata` | ||
78 | Das Ergebnis besitzt dieselbe Struktur wie bei der Übersichtsabfrage. Allerdings enthält das Attribut `payload` die kompletten Assistentendaten als eingebettetes JSON-Element und die Attribute pdf, xml und attachments enthalten die entsprechenden Einreichedaten. | ||
79 | |||
80 | Der bis zum Release 4.60.0 gültige Aufruf mittels:\ | ||
81 | `/submission/<Mandant>/<Formularnummer>/<Transaktions-ID>` | ||
82 | sollte mit der obige aufgeführten Endung ergänzt werden. Der damalige Aufruf behält bis auf Weiteres seine Gültigkeit. | ||
83 | |||
84 | |||
85 | |||
86 | Um ausschließlich die generierte oder befüllte PDF-Datei abzurufen, wird der Pfad mit der Endung `pdf` verwendet:\ | ||
87 | `/submission/<Mandant>/<Formularnummer>/<Transaktions-ID>/pdf` | ||
88 | |||
89 | |||
90 | #### XML | ||
91 | |||
92 | Um ausschließlich die generierte XML-Datei abzurufen, wird der Pfad mit der Endung `xml` verwendet:\ | ||
93 | `/submission/<Mandant>/<Formularnummer>/<Transaktions-ID>/xml` | ||
94 | |||
95 | ``` | ||
96 | <?xml version="1.0" encoding="UTF-8"?> | ||
97 | <!--Sonderzeichen in Feldnamen wurden ersetzt bzw. entfernt!--> | ||
98 | <form template="AS_940000"> | ||
99 | ... | ||
100 | </form> | ||
101 | ``` | ||
102 | |||
103 | #### Anhänge | ||
104 | |||
105 | Um alle Dateianhänge in einem Zip-Archiv abzurufen, wird der Pfad mit der Endung `zip` verwendet:\ | ||
106 | `/submission/<Mandant>/<Formularnummer>/<Transaktions-ID>/zip` | ||
107 | |||
108 | ### Statusänderung | ||
109 | |||
110 | Um den Bearbeitungsstatus eines Vorgangs kenntlich zu machen, kann der Status einer Transaktion geändert werden. Dazu wird an die Detail-URL ein POST gesendet mit dem zusätzlichen Parameter `setStatus`. Gültige Statuswerte sind: | ||
111 | |||
112 | - NEW | ||
113 | - READ | ||
114 | - CLOSED | ||
115 | - PRELIMINARY | ||
116 | - HIDDEN | ||
117 | - DELETED | ||
118 | |||
119 | > ***Hinweis:*** | ||
120 | > Wird der Status auf `DELETED` gesetzt, werden die Inhaltsdaten (payload, pdf, xml, attachments) unwiderruflich gelöscht. | ||
121 | |||
122 | ___ | ||
123 | |||
124 | ## Nachricht | ||
125 | |||
126 | Unter dem `message`-Endpunkt lassen sich Nachrichten zu einzelnen Transaktionen austauschen. | ||
127 | |||
128 | ### Neue Nachricht erzeugen | ||
129 | |||
130 | Eine Nachricht kann über einen POST an eine Url mit folgendem Muster erzeugt werden:\ | ||
131 | `/message/<Mandant>/<Transaktions-ID>/create`\ | ||
132 | Als Rückgabewert erhält man lediglich die Nachrichten-ID des neuen Eintrags. Enthält der POST einen Body, so wird dieser als Nachrichtentext verwendet. | ||
133 | |||
134 | ### Übersicht | ||
135 | |||
136 | Eine Übersicht der Nachrichten zu einem einzelnen Vorgang können über `/message/<Mandant>/<Transaktions-ID>` abgerufen werden. Als Antwort erhält man ein JSON-Array in folgender Form: | ||
137 | |||
138 | ``` | ||
139 | [{ | ||
140 | "id":"581754a5bf962e5318d90f7b", | ||
141 | "transID":"AS_940000-gsh7ntqS", | ||
142 | "changedDate":1477924005742, | ||
143 | "status":"NEW", | ||
144 | "text":null, | ||
145 | "size":0, | ||
146 | "files":[] | ||
147 | }] | ||
148 | ``` | ||
149 | |||
150 | ### Details | ||
151 | |||
152 | Die Details zu einer einzelnen Nachricht inkl. Nachrichtentext und Verweisen auf hinterlegte Dateien können über eine URL der folgenden Form abgerufen werden: `/message/<Mandant>/<Transaktions-ID>/<Nachrichten-ID>` | ||
153 | |||
154 | ### Text | ||
155 | |||
156 | Soll der Text einer Nachricht nachträglich hinzugefügt oder geändert werden, kann dies über einen Post an die Detail-URL bewerkstelligt werden. Der neue Text ist dabei als POST-Body zu übergeben. | ||
157 | |||
158 | ### Status | ||
159 | |||
160 | Auch Nachrichten besitzen ein Status-Attribut. Dieses kann dadurch geändert werden, dass man eine POST-Nachricht an die Detail-URL mit einem zusätzlichen `setStatus`-Parameter sendet. Gültige Statuswerte sind: | ||
161 | |||
162 | - NEW | ||
163 | - READ | ||
164 | - CLOSED | ||
165 | - PRELIMINARY | ||
166 | - HIDDEN | ||
167 | - DELETED | ||
168 | |||
169 | > ***Hinweis:*** | ||
170 | > Wird der Status auf `DELETED` gesetzt, werden der Text und alle Dateianhänge unwiderruflich gelöscht. | ||
171 | |||
172 | ___ | ||
173 | |||
174 | ## Nachrichtenanhang | ||
175 | |||
176 | Zu jeder Nachricht können auch Dateien hinterlegt werden. Dies erfolgt unter dem `file`-Endpunkt. | ||
177 | |||
178 | ### Hinzuzufügen | ||
179 | |||
180 | Um eine neue Datei einer Nachricht hinzuzufügen, kann diese an eine URL der Form:\ | ||
181 | `/file/<Mandant>/<Nachtrichten-ID>/add` als POST gesendet werden. Der Dateiname muss dabei als Parameter `filename` übergeben werden. Der Contenttype wird dem entsprechenden HTTP-Header entnommen. | ||
182 | |||
183 | ### Übersicht | ||
184 | |||
185 | Die Dateien, die zu einer Nachricht vorhanden sind, können der Detailansicht der Nachricht entnommen werden. | ||
186 | |||
187 | ___ | ||
188 | |||
189 | ## Abruf | ||
190 | |||
191 | Die Metadaten der einzelnen Dateien sind unter URLs der folgenden Form abrufbar:\ | ||
192 | `/file/<Mandant>/<Nachricht-ID>/<Datei-ID>`.\ | ||
193 | Um den Inhalt abzurufen, muss die URL nur um `/data` ergänzt werden. Der Contenttype wird dabei auf den Wert gesetzt, der beim Hochladen verwendet wurde. | ||
194 | |||
195 | ### Löschen | ||
196 | |||
197 | Einzelne Dateien können über die Detail-URL auch wieder gelöscht werden. Dazu ist die HTTP-Methode DELETE zu verwenden. | ||
198 | |||
199 | ___ | ||
200 | |||
201 | ### Beispielanwendung | ||
202 | |||
203 | Um die Schnittstelle beispielhaft bedienen zu können, wird eine Demoanwendung unter folgender URL bereitgestellt: https://vertrieb.form-solutions.de/submission/swagger-ui/index.html | ||
204 | |||
205 | Ebenso steht dem Anwender mit dieser Beispielanwendung eine technische Dokumentation bereit, welche die einzelnen Ressourcen detaillierter beschreibt. |