4. Dienstgeber - JasminaCej/WBA2SS17GaygizisCejvanovicYilmaz GitHub Wiki
Ressourcen Modellierung (Dienstgeber)
Im Folgenden werden die Anforderungen und Ressourcen des Systems, also des Dienstgebers genauer dargestellt.
Die finale Modellierung der Ressource "Einkaufsliste" ist
- GET /shoppinglist/ - Liste der gesamten Einkaufsliste und
- GET/shoppinglist?shoppingdate={sd} - Einkaufsliste zum Datum "sd".
Zur Ressource "Event" sieht die Modellierung folgendermaßen aus:
- GET /event/ - Liste aller Events,
- POST /event/ - Neuer Event,
- PUT /event/event_id - Aktualisieren eines Events,
- DELETE /event/event_id - Löschen eines Events und
- GET /event/event_id - Aufrufen eines Events.
Zuletzt zur Ressource "Localization":
- GET /localization/ Liste der gesamten Lokalisierungen und
- PUT /localization/ Aktualisieren der Lokalisierungen.
Die Ressource Cocktail und Zutaten entfallen, da wir einen externen Webservice namens "CocktailDB" verwenden und dieser die Ressourcen zur Verfügung stellt.
Dokumentation Dienstgeber :
Ressourcen: In dem Projektszenario sind folgende vier Ressourcen definiert:
1- EventService.js
In dieser Ressource werden alle HTTP Methoden inklusive einiger zusätzlicher Features angeboten:
GET : Durch dieser Methode werden alle gespeicherten Events aus der mongoDB-Datenbank abgerufen. Dabei ist dies unter der URL "/event" erreichbar. Diese Methode bietet noch einen zusätzlichen Parameter, die "ID" an. Falls man in der URL noch eine ID angibt (Syntax: /event/:id), wird nach dem Event mit der angegebenen ID gesucht und letztendlich geliefert.
POST: Durch diese Methode kann unter der URL "/event" ein Event erstellt werden. Dabei wird der Einkaufstag des jeweiligen Events ermittelt. Falls der Tag des Events in der Vergangenheit liegt, wird ein Status Code 400 zurückgeschickt. Hat das Event denselben Namen wie ein bereits existierendes Events, so wird bekannt gegeben, dass dieser schon vorhanden ist.
PUT: Mittels der ID in der URL (Syntax: /event/:id), wird das Event zu dieser ID in der mongoDB-Datenbank durch den Request aktualisiert. Falls jedoch kein Event unter der ID gefunden wurde, wird der Status Code 404 Not Found zurückgegeben. Liegt das Event-Datum in der Vergangenheit, so wird der Status Code 400 mit der Nachricht "Event is not valid" geliefert.
DELETE: Wird bei bei Delete eine ID übergeben (Syntax: /event/:id), so werden das Event unter dieser ID von der mongoDB-Datenbank gelöscht.
2- localizationService.js:
GET: Da mit einem externen Webservice gearbeitet wird, welcher Begriffe in der englischen Sprache liefert, müssen diese übersetzt werden (Lokalisierung). Hierzu dient diese Ressource bzw. die GET-Methode gibt Übersetzungen mit der entsprechenden Sprache zurück. Da jedoch zurzeit nur die deutsche Sprache verwendet wird, existiert nur ein Eintrag.
PUT: Durch diese Methode können Lokalisierungen bearbeitet werden. Dies ist erforderlich, um englische Begriffe und deren deutsche Übersetzungen zu bearbeiten bzw. hinzuzufügen. Dabei wird bei der PUT-Methode dieser Ressource die ergänzte Lokalisierung veröffentlicht (publish), welche wiederum von Dienstnutzern empfangen (subscribe) wird.
3- shoppingListService.js:
GET: Durch diese Ressource werden alle Einkaufslisten für die kommenden Events berechnet. Ein weitere Funktion, die dieser Service anbietet, ist die Filterung nach dem Einkaufsdatum (shoppingDate), wodurch die Einkaufsliste für ein bestimmtes Datum berechnet wird.
Ziele die aufgrund Zeitmangels nicht umgesetzt werden konnten: Ein zusätzliches Ziel war es, eine Lagerverwaltung und -abgleich umzusetzen. Hierbei sollten von der Einkaufsliste im Lager vorhandene Zutaten in vorhandener Menge reduziert werden.