Wiki-Quellcode von Submission-API

Version 2.1 von MACH ProForms GmbH am 08.10.2020

Zeige letzte Bearbeiter
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 ```
48 Wird beim Assistentenstart eine Ordnungsziffer mitgegeben enthält das Attribut payload die übergebene Ordnungsziffer als eingebettetes JSON Element.
49
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:
51
52 1. `?status=NEW&status=READ`
53 2. `?status=NEW,READ`
54
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.