Wiki-Quellcode von Submission-API
Version 1.1 von MACH ProForms GmbH am 07.10.2020
Zeige letzte Bearbeiter
author | version | line-number | content |
---|---|---|---|
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 | |||
49 | 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. | ||
50 | |||
51 | Gültige Statuswerte sind: | ||
52 | |||
53 | - NEW | ||
54 | - READ | ||
55 | - CLOSED | ||
56 | - PRELIMINARY | ||
57 | - HIDDEN | ||
58 | - DELETED | ||
59 | |||
60 | 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. | ||
61 | |||
62 | ### Detailauskunft | ||
63 | |||
64 | Sollen alle Daten eines einzelnen Formulareingangs abgerufen werden, ist die URL lediglich um die Transaktions-ID zu ergänzen: | ||
65 | `/submission/<Mandant>/<Formularnummer>/<Transaktions-ID>` | ||
66 | 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. | ||
67 | |||
68 | ### Statusänderung | ||
69 | |||
70 | 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: | ||
71 | |||
72 | - NEW | ||
73 | - READ | ||
74 | - CLOSED | ||
75 | - PRELIMINARY | ||
76 | - HIDDEN | ||
77 | - DELETED | ||
78 | |||
79 | > ***Hinweis:*** | ||
80 | > Wird der Status auf `DELETED` gesetzt, werden die Inhaltsdaten (payload, pdf, xml, attachments) unwiderruflich gelöscht. | ||
81 | |||
82 | ___ | ||
83 | |||
84 | ## Nachricht | ||
85 | |||
86 | Unter dem `message`-Endpunkt lassen sich Nachrichten zu einzelnen Transaktionen austauschen. | ||
87 | |||
88 | ### Neue Nachricht erzeugen | ||
89 | |||
90 | Eine Nachricht kann über einen POST an eine Url mit folgendem Muster erzeugt werden: | ||
91 | `/message/<Mandant>/<Transaktions-ID>/create` | ||
92 | 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. | ||
93 | |||
94 | ### Übersicht | ||
95 | |||
96 | 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: | ||
97 | |||
98 | ```json | ||
99 | [{ | ||
100 | "id":"581754a5bf962e5318d90f7b", | ||
101 | "transID":"AS_940000-gsh7ntqS", | ||
102 | "changedDate":1477924005742, | ||
103 | "status":"NEW", | ||
104 | "text":null, | ||
105 | "size":0, | ||
106 | "files":[] | ||
107 | }] | ||
108 | ``` | ||
109 | |||
110 | ### Details | ||
111 | |||
112 | 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>` | ||
113 | |||
114 | ### Text | ||
115 | |||
116 | 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. | ||
117 | |||
118 | ### Status | ||
119 | |||
120 | 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: | ||
121 | |||
122 | - NEW | ||
123 | - READ | ||
124 | - CLOSED | ||
125 | - PRELIMINARY | ||
126 | - HIDDEN | ||
127 | - DELETED | ||
128 | |||
129 | > ***Hinweis:*** | ||
130 | > Wird der Status auf `DELETED` gesetzt, werden der Text und alle Dateianhänge unwiderruflich gelöscht. | ||
131 | |||
132 | ___ | ||
133 | |||
134 | ## Nachrichtenanhang | ||
135 | |||
136 | Zu jeder Nachricht können auch Dateien hinterlegt werden. Dies erfolgt unter dem `file`-Endpunkt. | ||
137 | |||
138 | ### Hinzuzufügen | ||
139 | |||
140 | Um eine neue Datei einer Nachricht hinzuzufügen, kann diese an eine URL der Form: | ||
141 | `/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. | ||
142 | |||
143 | ### Übersicht | ||
144 | |||
145 | Die Dateien, die zu einer Nachricht vorhanden sind, können der Detailansicht der Nachricht entnommen werden. | ||
146 | |||
147 | ___ | ||
148 | |||
149 | ## Abruf | ||
150 | |||
151 | Die Metadaten der einzelnen Dateien sind unter URLs der folgenden Form abrufbar: | ||
152 | `/file/<Mandant>/<Nachricht-ID>/<Datei-ID>`. | ||
153 | 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. | ||
154 | |||
155 | ### Löschen | ||
156 | |||
157 | Einzelne Dateien können über die Detail-URL auch wieder gelöscht werden. Dazu ist die HTTP-Methode DELETE zu verwenden. |