Skip to content
This repository was archived by the owner on Sep 18, 2020. It is now read-only.

Frontend 3.9 Interface zum Backend umsetzen

Markus Thömmes edited this page Jan 30, 2015 · 28 revisions

← zurück zur Übersicht

BackendService

Definition: BackendService
Modul: happyHour.backend.Backend
Dateiname: components/backend/Backend.js
Typ: Angular Service
Autor: Kim Rinderknecht, Daniel Reichert

Abhängigkeiten

$q
Liefert die Möglichkeit Promises zu erstellen.
$http
AngularJS Service um eine JSON-Schnittstelle anzusprechen

Funktionsweise

REST-Schnittstellen mit der HTTP-GET Methode

Die Schnittstellen mit der HTTP-GET Methode werden genutzt, um Informationen aus dem Backend abzurufen. Der Aufbau der einzelnen Schnittstellen erfolgt nach demselben Schema. Zur Veranschaulichung wird als Beispiel die REST-Schnittstelle für das Abrufen von Bars herangezogen.

getBars: function(location, radius, weekday)

getBars ist dabei der Name der Funktion und in Klammern ggf. die übergebenen Parameter.

Aus den Attributen, die für korrekte Abfrage aus dem Backend erforderlich sind, wird eine URL gebildet.

var url = baseUrl+'/bars?latitude='+latitude+'&longitude='+longitude+'&radius='+radius+'&weekday='+weekday;

Zusammen mit der URL wird eine HTTP-GET Abfrage gestartet.

var promise = $http({method: 'GET', url: url});

Aufgrund der in JavaScript auftretenden Asynchronität, muss zuerst ein Promise Objekt erstellt werden. Die Funktion läuft dabei weiter, während die Abfrage vom Backend noch andauert. Sobald die Abfrage abgeschlossen wurde, wird das Promise Objekt letztendlich an den Anfragenden ausgeliefert.

promise.then(function(data){ 
  deferred.resolve(data.data.data);
});
return deferred.promise;

REST-Schnittstellen mit der HTTP-POST Methode

Die Schnittstellen mit der HTTP-POST Methode werden genutzt, um Informationen im Backend abzuspeichern. Der Aufbau der einzelnen Schnittstellen erfolgt nach demselben Schema. Zur Veranschaulichung wird als Beispiel die REST-Schnittstelle für das Abspeichern von Meldungen über fehlerhafte Daten herangezogen.

reportData: function(barId, description)

reportData ist dabei der Name der Funktion und in Klammern ggf. die übergebenen Parameter.

Aus den Attributen, die für für das Abspeichern und eindeutige Zuweisung im Backend erforderlich sind, wird eine URL gebildet.

var url = baseUrl+'/bars/' + barId + '/reports';

Zusammen mit der URL wird eine HTTP-POST Abfrage gestartet. Die Fehlermeldung wird über den Paketrumpf (data-Feld im Objekt) an das Backend übergeben, um dort abgespeichert zu werden.

var promise = $http({method: 'POST', url: url, data: description});

Aufgrund der in JavaScript auftretenden Asynchronität, muss zuerst ein Promise Objekt erstellt werden. Die Funktion läuft dabei weiter, während die Abfrage vom Backend noch andauert. Sobald die Abfrage abgeschlossen wurde, wird ein Boolean Wert zurückgegeben. true entspricht dabei einer erfolgreich abgespeicherten Fehlermeldung, wogegen bei false ein Fehler aufgetreten ist.

promise.then(function(data){ 
  deferred.resolve(data.data.data);
});
return deferred.promise;

REST-Schnittstellen mit der HTTP-DELETE Methode

Die Schnittstellen mit der HTTP-DELETE Methode werden genutzt, um Informationen aus dem Backend zu löschen. Der Aufbau der einzelnen Schnittstellen erfolgt nach demselben Schema. Zur Veranschaulichung wird als Beispiel die REST-Schnittstelle für das Löschen einer bestimmten Meldung über fehlerhafte Daten herangezogen.

delReport: function(id, admin, adminpw)

delReport ist dabei der Name der Funktion und in Klammern ggf. die übergebenen Parameter. Da es sich bei den HTTP-DELETE Abfragen um Administrationsfunktionen handelt, darf der Zugriff nur für autorisierte Personen erfolgen. Dies wird über die zusätzlichen Parameter admin und adminpwsichergestellt.

Aus den Attributen, die für für das Löschen und eindeutige Zuweisung im Backend erforderlich sind, wird eine URL gebildet.

var url = baseUrl+'/report/'+id+'?admin='+admin+'&adminpw='+adminpw;

Zusammen mit der URL wird eine HTTP-DELETE Abfrage gestartet.

var promise = $http({method: 'DELETE', url: url});

Aufgrund der in JavaScript auftretenden Asynchronität, muss zuerst ein Promise Objekt erstellt werden. Die Funktion läuft dabei weiter, während die Abfrage vom Backend noch andauert. Sobald die Abfrage abgeschlossen wurde, wird ein Boolean Wert zurückgegeben. true entspricht dabei einer erfolgreich gelöschten Fehlermeldung, wogegen bei false ein Fehler aufgetreten ist.

promise.then(function(data){ 
deferred.resolve(data.data.data);
});
return deferred.promise;

Clone this wiki locally