Wiki-Quellcode von Submission-API

Version 2.1 von MACH ProForms GmbH am 08.10.2020

Verstecke letzte Bearbeiter
MACH ProForms GmbH 1.1 1 ## Authentifizierung
2
3 Im Folgenden aufgeführte Schnittstelle erfordert eine Authentifizierung der ausführenden Stelle.
4
5 Hierbei kommt eine preemptive Basic-Authentifizierung zum Einsatz.
6
7 - Als Benutzername ist die Nummer des Mandanten zu verwenden, in dessen Namen der Aufruf durchgeführt wird.
8 - Als Passwort dient ein CMS-Key wie er auch an anderen Stellen im System zur Anwendung kommt.
9
10 ___
11
12 ## Base-URL
13
14 Für alle URL-Endpunkte ist ein Prefix im folgenden Stil zu verwenden:
15 `https://<Server-Name>/submission/api/v2/`
16
17 ___
18
19 ## Einreichungen
20
21 Unter dem `submission`-Endpunkt lassen sich Informationen zu eingegangenen Formularen abrufen. Zusätzlich kann Bearbeitungsstatus zurückgemeldet werden.
22
23 ### Übersicht
24
25 `/submission/<Mandant>/<Formularnummer>`
26 Mittels der Mandantennummer und der Formularnummer lässt sich eine Übersicht an eingegangenen Formularen abrufen. Dabei sind nur Metadaten enthalten, z. B.
27
28 ```json
29 [{
30 "transID":"AS_940000-gsh7ntqS",
31 "userID":"22222222-2222-0126",
32 "identifier":"AS_940000",
33 "applicantName":"Mustermann",
34 "applicantEMail":null,
35 "status":"NEW",
36 "options": {
37 "submissionType":"REGULAR",
38 "paymentType":"NONE",
39 "npa":false
40 },
41 "payload":null,
42 "pdf":null,
43 "xml":null,
44 "attachments":null,
45 "submissionDate":1455801335305
46 }]
47 ```
MACH ProForms GmbH 2.1 48 Wird beim Assistentenstart eine Ordnungsziffer mitgegeben enthält das Attribut payload die übergebene Ordnungsziffer als eingebettetes JSON Element.
MACH ProForms GmbH 1.1 49
MACH ProForms GmbH 2.1 50 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:
MACH ProForms GmbH 1.1 51
MACH ProForms GmbH 2.1 52 1. `?status=NEW&status=READ`
53 2. `?status=NEW,READ`
54
MACH ProForms GmbH 1.1 55 Gültige Statuswerte sind:
56
57 - NEW
58 - READ
59 - CLOSED
60 - PRELIMINARY
61 - HIDDEN
62 - DELETED
63
64 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.
65
66 ### Detailauskunft
67
68 Sollen alle Daten eines einzelnen Formulareingangs abgerufen werden, ist die URL lediglich um die Transaktions-ID zu ergänzen:
69 `/submission/<Mandant>/<Formularnummer>/<Transaktions-ID>`
70 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.
71
72 ### Statusänderung
73
74 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:
75
76 - NEW
77 - READ
78 - CLOSED
79 - PRELIMINARY
80 - HIDDEN
81 - DELETED
82
83 > ***Hinweis:***
84 > Wird der Status auf `DELETED` gesetzt, werden die Inhaltsdaten (payload, pdf, xml, attachments) unwiderruflich gelöscht.
85
86 ___
87
88 ## Nachricht
89
90 Unter dem `message`-Endpunkt lassen sich Nachrichten zu einzelnen Transaktionen austauschen.
91
92 ### Neue Nachricht erzeugen
93
94 Eine Nachricht kann über einen POST an eine Url mit folgendem Muster erzeugt werden:
95 `/message/<Mandant>/<Transaktions-ID>/create`
96 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.
97
98 ### Übersicht
99
100 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:
101
102 ```json
103 [{
104 "id":"581754a5bf962e5318d90f7b",
105 "transID":"AS_940000-gsh7ntqS",
106 "changedDate":1477924005742,
107 "status":"NEW",
108 "text":null,
109 "size":0,
110 "files":[]
111 }]
112 ```
113
114 ### Details
115
116 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>`
117
118 ### Text
119
120 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.
121
122 ### Status
123
124 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:
125
126 - NEW
127 - READ
128 - CLOSED
129 - PRELIMINARY
130 - HIDDEN
131 - DELETED
132
133 > ***Hinweis:***
134 > Wird der Status auf `DELETED` gesetzt, werden der Text und alle Dateianhänge unwiderruflich gelöscht.
135
136 ___
137
138 ## Nachrichtenanhang
139
140 Zu jeder Nachricht können auch Dateien hinterlegt werden. Dies erfolgt unter dem `file`-Endpunkt.
141
142 ### Hinzuzufügen
143
144 Um eine neue Datei einer Nachricht hinzuzufügen, kann diese an eine URL der Form:
145 `/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.
146
147 ### Übersicht
148
149 Die Dateien, die zu einer Nachricht vorhanden sind, können der Detailansicht der Nachricht entnommen werden.
150
151 ___
152
153 ## Abruf
154
155 Die Metadaten der einzelnen Dateien sind unter URLs der folgenden Form abrufbar:
156 `/file/<Mandant>/<Nachricht-ID>/<Datei-ID>`.
157 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.
158
159 ### Löschen
160
161 Einzelne Dateien können über die Detail-URL auch wieder gelöscht werden. Dazu ist die HTTP-Methode DELETE zu verwenden.
162
163