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.
EMBEDDED FORM
Embed Code
<script src="http://localhost/embed/embed.js"></script>