Einleitung
Verwendung der FM2.0 API
Austausch von Informationen zwischen Kunden mit Beratungsbedarf zum Thema Grenzüberschreitung und Beratern von Grenzinfopunkten.
Diese Testumgebung dient der Dokumentation der Schnittstelle des FM-Systems. Durch kurze Codebeispiele wird die Ansteuerung der Endpoints erläutert.
Der Programmablauf sowie der Datenaustausch und der Aufbau der JSON-Objekte können über die Dev-Tools des Browsers analysiert werden.
Header
Bei jeder Anfrage muss im Request-Header das Kürzel der Instanz mitschickt werden. Dies geschieht über den Bezeichner "X-GIP". Beispiel:
const HEADERS =
{
"X-GIP": "demo",
"Accept": "application/json",
"Content-Type": "application/json"
}
API-Endpoints
Formularfelder zur Erfassung eines neuen Falles holen:
GET https://crm-staging.grenzinfo.eu/api/api/ext/form/{language}
Neuen Fall mit Daten aus Formular erzeugen:
POST https://crm-staging.grenzinfo.eu/api/api/ext/case/
Bestehenden Fall anhand der Fall-ID holen:
GET https://crm-staging.grenzinfo.eu/api/api/ext/case/{case_id}
Persönliche Daten im Fall aktualisieren:
PUT https://crm-staging.grenzinfo.eu/api/api/ext/case/{case_id}
Beitrag/Kommentar verfassen:
POST https://crm-staging.grenzinfo.eu/api/api/ext/comment/{case_id}
Scripts
Die JS-Codebeispiele sind in drei Scripts enthalten:
-
js/main.jsClick-events der Buttons und Aufruf der fetch-Methoden der FMConnector-Klasse -
js/fmconnector.jsKlasse mit Methoden zum Aufruf der Endpoints -
js/renderer.jsErzeugung der DOM-Elemente zur Darstellung der Formulfelder
Zum besseren Verständnis ist der Source-Code einfach gehalten und in nativem JS geschrieben. Zudem wird auf jegliche Abhängigkeiten verzichtet.
Lediglich zur Bedienung der Oberfläche sowie zum Styling wird das Bootstrap-Framework verwendet.
Sonstiges
In der Seitenleiste können Parameter zur Rückgabe definiert werden:
Instanz Das Kürzel des regionalen Grenzinfopunktes (z.B. emra =
Euregio Maas/Rhein Aachen)
Sprache Formularfelder, Labels und Optionen werden in der entspr.
Spache ausgeliefert
Fall-ID Eindeutige ID zum Abrufen eines Falles
Fall holen/anzeigen
- Aufruf der
getCase()-Methode inmain.js - GET-Request an
/api/ext/case/{case_id}/-Endpoint pergetCase()-Klassenmethode - Erzeugung der DOM-Ausgabe
Rückgabe: JSON || Error
Neuer Fall
- Aufruf der
loadForm()-Methode inmain.js - GET-Request an
/api/ext/form/{language}/-Endpoint pergetRequestForm-Klassenmethode - Erzeugung der Formularfelder mit
renderForm
Beim Absenden wird ein neuer Fall erzeugt und eine Fall-ID zurückgeliefert. Diese Fall-ID wird in der Sidebar eingetragen. Der neue Fall kann dann über "Fall anzeigen" geholt werden.
Hinweis: Um Fälle später wieder aufrufen zu können, sollten neu erzeugte Fall-IDs notiert werden, da diese nicht lokal gespeichert werden.
Push-Benachrichtigung
Bei Änderungen am Fall durch Berater (z.B. neue Nachricht) wird ein POST-Request (mit JSON) an einen externen API-Endpoint geschickt.
Der aufzurufende Endpoint kann in den Einstellungen des CRM hinterlegt werden.
Fall bearbeiten
- Aufruf der
editCase()-Methode inmain.js - Holen der Falldaten mit
getCase()inmain.js - Holen des Fallformulars mit Übergabe der Falldaten mit
loadForm()inmain.js - GET-Request an
/api/ext/form/{language}/-Endpoint pergetRequestForm-Klassenmethode - Erzeugung des Formularfelder incl. Werten (
renderForm())
Beim Absenden werden die Fromluardaten per updateCase()-Klassenmethode als PUT-Request an /case/{case_id}/ gesendet.
Als Antwort wird der komplette aktualisierte Fall als JSON-Objekt zurückgegeben.
Rückgabe: JSON || Error
Antwort schreiben
Die Antwort wird dem aktuellen Fall hinzugefügt und kann über
Fall anzeigen -> Fall holen angezeigt werden.
- Aufruf der
addComment()-Methode inmain.js - PUT-Request an
/api/ext/comment/{case_id}-Endpoint übercreateComment()-Klassenmethode
Rückgabe: True || Error
Upload
Über das Upload-Formular kann eine Datei hochgeladen werden. Der Upload erscheint anschließend unter "Dokumente" über
Fall anzeigen -> Fall holen.
- Aufruf der
addAttachment()-Methode inmain.js - PUT-Request an
/api/ext/cases/${case_id}/documents/-Endpoint überaddAttachment()-Klassenmethode
Rückgabe: True || Error
Download
Mit der ID des Dokumentes kann dieses heruntergeladen werden
- Aufruf der
getAttachment()-Methode inmain.js - GET-Request an
/api/ext/cases/${case_id}/documents/${document_id}-Endpoint übergetAttachment()-Klassenmethode
Rückgabe: Binary || Error
Update Event Trigger
Wenn neue Nachrichten im System bereitstehen oder Erinnerungen für Termine anstehen, wird ein POST-Request an einen
Endpoint ausgelöst.
Um den Empfang des Requests zu testen, kann dieser hier manuell ausgelöst werden.
Geben Sie einen Endpoint ein, an den der Request geschickt werden soll.