2. Spezifikation des Dienstgebers - nReinhardt91/WBA2SS16KruschReinhardtKlein GitHub Wiki

1. Ressourcen

  • Rezepte
  • WGs
  • Einkaufsliste

Diese Ressourcen wurden als grundlegend erachtet, sie sind die wesentlichen Ressourcen des Systems.

Es wird abgefragt, wenn die jeweilige Methode aufgerufen wird, ob eine der Ressourcen vorhanden ist existiert. Es werden bei Fehlermeldungen oder Erfolg Statuscodes abgeschickt.

Wir verwenden eine Redis Datenbank, auch wenn immer mal wieder MongoDB als Datenbank im Raum stand. Redis basiert auf NoSQL und einem Key-Value-Prinzip. Dieses Key-Value-Prinzip ist bei kleinen bzw. wenigen Daten effizienter, weil sie über einen Key eindeutig identifizierbar sind. Dieser Key wird z.B. zum aufrufen von Rezepten, WGs oder Einkaufslisten benutzt. Auch zum erstellen wird dieser Key benutzt.

2. Spezifikation REST Webservice

Ressource Methode Semantik content-type (req) content-type (res)
x /rezepte/{:id} GET liefert das gesamte Rezept text/plain application/json
x /rezepte/{:id} PUT Rezept aktualisieren, bearbeiten application/json application/json
x /rezepte/{:id} DELETE Rezept löschen text/plain text/plain
x /rezepte/{:id}/zutatenliste GET gibt die Zutaten aus text/plain application/json
x /rezepte/{:id}/zutatenliste POST Zutaten ändern application/json application/json
x /rezepte/{:id}/zutatenliste DELETE löscht Zutatenliste text/plain text/plain
x /rezepte GET listet alle Rezepte auf --- application/json
x /rezepte POST neues Rezept anlegen application/json application/json

/* ------- */

Ressource Methode Semantik content-type (req) content-type (res) Status
x /wgs/{:id} GET gibt eine WG (id, name, strasse)zurück text/plain application/json
x /wgs/{:id} POST erzeugt eine WG application/json application/json
x /wgs/{:id} DELETE löscht eine WG text/plain text/plain
x /wgs/{:id}/Einkaufsliste GET gibt die Einkaufslisten der WG wieder text/plain application/json
x /wgs/{:id}/Einkaufsliste/{:id} GET gibt eine Einkaufsliste aus text/plain application/json
x /wgs/{:id}/Einkaufsliste/{:id} POST erstellt eine Einkaufsliste application/json application/json
x /wgs/{:id}/Einkaufsliste/{:id} DELETE löscht eine Einkaufsliste aus text/plain text/plain
x /wgs/{:id}/Einkaufsliste/{:id} PUT bearbeitet eine Einkaufsliste application/json application/json

Eine Einkaufsliste hat eine ID und einen Namen wie z.B. Geburtstagsliste, Abendessen...

/* ------- */

Ressource Methode Semantik content-type (req) content-type (res) Status
X /zutaten/ GET listet alle Zutaten auf text/plain application/json
X /zutaten/{:id} GET gibt eine Zutat zurück text/plain application/json
X /zutaten/{:id} PUT ändert eine Zutat application/json application/json
X /zutaten/{:id} POST fügt eine Zutat hinzu application/json application/json
X /zutaten/{:id} DELETE löscht eine Zutat text/plain text/plain