1.6 REST-Aufrufe

1.6 REST-Aufrufe

Um Daten beim Backend per REST anzufragen, kann der Aufruf fetch() aus der Browser-API verwendet werden.

Für den Aufbau der URL sollte dabei immer der Prefix window.location.baseUrl
für REST-Aufrufe verwendet werden. Nur dieser Prefix stellt sicher, dass eine gültige URL zum Erreichen des Endpunktes auf den verschiedenen Plattformen (z.B. Electron, Android) verwendet wird.
Zur Veranschaulichung der Funktionsweise von fetch() soll dieses Beispiel zum Laden von Benutzergruppen dienen.

Beispiel zum Laden von Benutzergruppen per REST-Aufruf

let getUserGroups = function(callback) { fetch(`${window.location.baseUrl}/osrest/api/organization/groups?all=true&loadUsers=true&ignoreInvalid=true`) .then(function(response) { return response.json(); }) .then(function(json) { callback(json); }) }; let loadUserGroups = function(contract) { if (!this.userGroups) { let callback = function(grouplist) { if (grouplist) { contract.usergroups = grouplist; for (let gIdx in grouplist) { let usrGrp = grouplist[gIdx]; for (let usrIdx in usrGrp.users) { const usr = usrGrp.users[usrIdx]; let foundUserMatch = contract.users.find(function(user) { return ((user || {}).name || '').toLowerCase() === ((usr || {}).name || '').toLowerCase(); }); if (!foundUserMatch) { contract.users.push(usr); } } } } }; getUserGroups(callback); } };