35 lines
2.1 KiB
Markdown
35 lines
2.1 KiB
Markdown
Create Read Update Delete
|
|
Beschreibung
|
|
Diese Übung dient dazu, dir das zusammenspiel von JavaScript und PHP näher zu bringen. Hierzu nutzen wir das Framework Symfony, über das wir per PHP eine REST API für eine Entität unserer Wahl definieren. Diese stellt Daten und Funktionen zur Entitätsverwaltung zur Verfügung. Diese beinhalten: Generieren, Bearbeiten und Löschen von Daten.
|
|
|
|
Aufgabe
|
|
|
|
1) Überlege Dir eine Entität deiner Wahl (z.B. die Entität Produkt besitzt einen Namen, hat einen Preis und eine Beschreibung).
|
|
2) Für diese Entität entwickelst du testgetrieben API Schnittstellen, die folgendes zur Verfügung stellen:
|
|
|
|
- Ausgabe einzelner Entitäten
|
|
- Ausgabe aller Entitäten
|
|
- Bearbeiten einzelner Entitäten
|
|
- Löschen einzelner Entitäten
|
|
- Erstellen einzelner Entitäten
|
|
|
|
|
|
|
|
3) Teste deine REST API zusätzlich manuell mit externen Programmen wie z.B. Postman o.ä.
|
|
|
|
4) Definiere ein Template und binde dort JavaScript ein, welches Dir durch Abruf deiner selbst-entwickelten REST API die Daten deiner Entität in eine Tabelle ausgibt.
|
|
|
|
5) Füge zu jedem Eintrag in der Tabelle Buttons hinzu, die den relevanten Eintrag per Overlay in einer Detailansicht anzeigen lassen. Das Overlay beinhaltet HTML und wird über den Rest der Seite geblendet. Hier bitte nicht das Javascript Alert oder ähnliches benutzen.
|
|
|
|
6) Füge zu jedem Eintrag in der Tabelle Buttons hinzu, die den relevanten Eintrag per Overlay editierbar machen. Es öffnet sich in diesem Overlay ein Formular in dem alle Properties dieses Eintrages aufgelistet sind.
|
|
|
|
7) Füge zu jedem Eintrag in der Tabelle Buttons hinzu, die den relevanten Eintrag löschen lassen. Implementiere hierzu eine Abfrage z.B. "Wollen Sie {Entität} wirklich löschen?"
|
|
|
|
8) Füge außerhalb der Tabelle einen Button hinzu, der neue Entitäten generieren kann. Hierzu öffnet sich ein weiteres Overlay mit einem Formular zur Eingabe aller relevanten Daten.
|
|
|
|
|
|
|
|
9) Für den Code müssen Unit- oder Functionaltests vorhanden sein.
|
|
|
|
Info: Bei jeder Datenänderung, wird die Seite nicht neu geladen. Die Daten werden nur per JavaScript aktualisiert!
|