7. Rest Modell - TugceAtay/GDW_Ay_Koese_Atay GitHub Wiki
1. Schritt: Jede Entität (Ressource) enthält einen eindeutigen Identifier
Schüler:
http://elearning.com/schueler/{schueler_id}
http://elearning.com/schueler/123
http://elearning.com/schueler/456
http://elearning.com/schueler/789
Klasse:
http://elearning.com/klasse/{klasse_nr}
http://elearning.com/klasse/4A
http://elearning.com/klasse/8C
http://elearning.com/klasse/10H
Schule:
http://elearning.com/schule/{schule_art}
http://elearning.com/schule/grundschule
http://elearning.com/schule/oberschule
http://elearning.com/schule/gymnasium
Fach:
http://elearning.com/fach/{fach_fachBezeichnung}
http://elearning.com/fach/mathe
http://elearning.com/fach/deutsch
http://elearning.com/fach/englisch
Lehrer:
http://elearning.com/lehrer/{lehrer_id}
http://elearning.com/lehrer/098
http://elearning.com/lehrer/467
http://elearning.com/lehrer/143
Lernstoff:
http://elearning.com/lernstoff/{fach}/{lernstoff_thema}
http://elearning.com/lernstoff/mathe/multiplikation
http://elearning.com/lernstoff/deutsch/grammatik
http://elearning.com/lernstoff/englisch/simplePresent
Aufgaben:
http://elearning.com/aufgaben/{fach}/{aufgabe_nr}
http://elearning.com/aufgaben/mathe/A1
http://elearning.com/aufgaben/deutsch/A13
http://elearning.com/aufgaben/englisch/A3
Lösung:
http://elearning.com/loesung/{fach}/{loesung_aufgabe_nr}
http://elearning.com/loesung/mathe/L1
http://elearning.com/loesung/deutsch/L13
http://elearning.com/loesung/englisch/L3
Test:
http://elearning.com/test/{fach}/{test_nr}
http://elearning.com/test/mathe/T1
http://elearning.com/test/deutsch/T6
http://elearning.com/test/englisch/T4
Test Ergebnis:
http://elearning.com/testergebnis/{fach}/{test_nr_testergebnis}
http://elearning.com/testergebnis/mathe/E1
http://elearning.com/testergebnis/deutsch/E6
http://elearning.com/testergebnis/englisch/E4
Stundenplan:
http://elearning.com/stundenplan/{klasse_stundenplan}
http://elearning.com/stundenplan/4A
http://elearning.com/stundenplan/8C
http://elearning.com/stundenplan/10H}
Erziehungsberechtigter:
http://elearning.com/erziehungsberechtigter/{schueler_id}/{erziehungsberechtigter_id}
http://elearning.com/erziehungsberechtigter/123/1234
http://elearning.com/erziehungsberechtigter/456/4567
http://elearning.com/erziehungsberechtigter/789/7890
Termine:
http://elearning.com/termine/{termin}/{datum}
http://elearning.com/termine/elternsprechtag/020321
http://elearning.com/termine/klassenarbeit/190221
http://elearning.com/termine/onlineunterricht/210221
2. Schritt: „Verlinke“ die Entitäten (Ressourcen)
< testStarten self='http://elearning.com/schueler/123' >
<Schule ref = 'http://elearning.com/schule/grundschule'/>
<Klasse ref = 'http://elearning.com/klasse/4A'/>
<Fach ref = 'http://elearning.com/fach/mathe'/>
<Lehrer ref = 'http://elearning.com/lehrer/098'/>
<Lernstoff ref = 'http://elearning.com/lernstoff/multiplikation'/>
< / testStarten >
In diesem Beispiel startet ein Schüler mit der ID 123, welches noch zur Grundschule geht und in der Klasse 4A ist einen Mathe Test. Der Test welches gestartet wurde hat das Thema Multiplikation. Ebenfalls hat der Mathelehrer, welches den Schüler 123 unterrichtet, die ID 098.
3. Schritt: Verwende die Standard Verben
Verb | Erklärung |
---|---|
GET | Entitäten abrufen/lesen |
PUT | bearbeiten/aktualisieren der Entitäten |
POST | erstellen der Entitäten |
DELETE | löschen der Entitäten |
HTTP Statuscodes
Code | Nachricht | Bedeutung |
---|---|---|
200 | OK | Die Anfrage wurde erfolgreich bearbeitet und das Ergebnis der Anfrage wird in der Antwort übertragen. |
201 | Created | Die Anfrage wurde erfolgreich bearbeitet. Die angeforderte Ressource wurde vor dem Senden der Antwort erstellt. Das „Location“-Header-Feld enthält eventuell die Adresse der erstellten Ressource. |
400 | Bad Request | Die Anfrage-Nachricht war fehlerhaft aufgebaut. |
404 | Unauthorized | Die Anfrage kann nicht ohne gültige Authentifizierung durchgeführt werden. Wie die Authentifizierung durchgeführt werden soll, wird im „WWW-Authenticate“-Header-Feld der Antwort übermittelt. |
Schüler: http://elearning.com/schueler/123
Ressorce | Verb | Semantik | content-type (req) | content-typ (res) | HTTP Statuscode |
---|---|---|---|---|---|
/schueler/ | GET | ruft alle Schüler auf | Application/JSON | 200, 404 | |
/schueler/{schueler_id} | GET | ruft Informationen eines bestimmten Schülers auf | Application/JSON | 200, 404 | |
/schueler/{schueler_id} | PUT | aktualisiert Informationen über einen bestimmten Schüler | Application/JSON | 200, 404 | |
/schueler/{schueler_id} | POST | fügt einen neuen Schüler hinzu | Application/JSON | 201, 400 | |
/schueler/{schueler_id} | DELETE | entfernt einen bestimmten Schüler | Application/JSON | 201, 400 | |
/schueler/ | DELETE | entfernt alle Schüler | Application/JSON | 201, 400 |
Klasse: http://elearning.com/klasse/{klasse_nr}
Ressorce | Verb | Semantik | content-type (req) | content-typ (res) | HTTP Statuscode |
---|---|---|---|---|---|
/klasse/ | GET | ruft alle Klassen auf | Application/JSON | 200, 404 | |
/klasse/{klasse_nr} | GET | ruft Informationen einer bestimmten Klasse auf | Application/JSON | 200, 404 | |
/klasse/{klasse_nr} | PUT | aktualisiert Informationen über eine bestimmte Klasse | Application/JSON | 200, 404 | |
/klasse/{klasse_nr} | POST | fügt eine neue Klasse hinzu | Application/JSON | 201, 400 | |
/klasse/{klasse_nr} | DELETE | entfernt eine bestimmte Klasse | Application/JSON | 201, 400 | |
/klasse/ | DELETE | entfernt alle Klassen | Application/JSON | 201, 400 |
Schule: http://elearning.com/schule/{schule_art}
Ressorce | Verb | Semantik | content-type (req) | content-typ (res) | HTTP Statuscode |
---|---|---|---|---|---|
/schule/ | GET | ruft alle Schulformen auf | Application/JSON | 200, 404 | |
/schule/{schule_art} | GET | ruft Informationen einer bestimmten Schulform auf | Application/JSON | 200, 404 | |
/schule/{schule_art} | PUT | aktualisiert Informationen über eine bestimmte Schulform | Application/JSON | 200, 404 | |
/schule/{schule_art} | POST | fügt eine neue Schulform hinzu | Application/JSON | 201, 400 | |
/schule/{schule_art} | DELETE | entfernt eine bestimmte Schulform | Application/JSON | 201, 400 | |
/schule/ | DELETE | entfernt alle Schulformen | Application/JSON | 201, 400 |
Fach: http://elearning.com/fach/{fach_bezeichnung}
Ressorce | Verb | Semantik | content-type (req) | content-typ (res) | HTTP Statuscode |
---|---|---|---|---|---|
/fach/ | GET | ruft alle Informationen der Fächer auf | Application/JSON | 200, 404 | |
/fach/{fach_bezeichnung} | GET | ruft Informationen eines bestimmten Fachs auf | Application/JSON | 200, 404 | |
/fach/{fach_bezeichnung} | PUT | aktualisiert Informationen über ein bestimmten Fach | Application/JSON | 200, 404 | |
/fach/{fach_bezeichnung} | POST | fügt ein neues Fach hinzu | Application/JSON | 201, 400 | |
/fach/{fach_bezeichnung} | DELETE | entfernt ein bestimmtes Fach | Application/JSON | 201, 400 | |
/fach/ | DELETE | entfernt alle Fächer | Application/JSON | 201, 400 |
Lehrer: http://elearning.com/lehrer/{lehrer_id}
Ressorce | Verb | Semantik | content-type (req) | content-typ (res) | HTTP Statuscode |
---|---|---|---|---|---|
/lehrer/ | GET | Ruft alle Informationen der Lehrer auf | Application/JSON | 200, 404 | |
/lehrer/{lehrer_id} | GET | Ruft Informationen eines bestimmten Lehrers auf | Application/JSON | 200, 404 | |
/lehrer/{lehrer_id} | PUT | Aktualisiert Informationen über einen bestimmten Lehrer | Application/JSON | 200, 404 | |
/lehrer/{lehrer_id} | POST | Fügt einen neuen Lehrer hinzu | Application/JSON | 201, 400 | |
/lehrer/{lehrer_id} | DELETE | Entfernt ein bestimmten Lehrer | Application/JSON | 201, 400 | |
/lehrer/ | DELETE | entfernt alle Lehrer | Application/JSON | 201, 400 |
Lernstoff: http://elearning.com/lernstoff/{fach}/{lernstoff_thema}
Ressorce | Verb | Semantik | content-type (req) | content-typ (res) | HTTP Statuscode |
---|---|---|---|---|---|
/lernstoff/ | GET | Aufrufen aller Lernstoffe | Application/JSON | 200, 404 | |
/lernstoff/{fach}/{lernstoff_thema} | GET | Aufrufen von Lernstoff Thema zu einem Schulfach | Application/JSON | 200, 404 | |
/lernstoff/{fach}/{lernstoff_thema} | PUT | Aktualisieren der Lernstoffe zu einem Fach | Application/JSON | 200, 404 | |
/lernstoff/{fach}/{lernstoff_thema} | POST | Zu einem Schulfach ein Lernstoff Thema hinzufügen | Application/JSON | 201, 400 | |
/lernstoff/{fach}/{lernstoff_thema} | DELETE | Löschen von einem Thema zum bestimmten Fach | Application/JSON | 201, 400 | |
/lernstoff/ | DELETE | Löschen von allen Lernstoffen | Application/JSON | 201, 400 |
Aufgaben: http://elearning.com/aufgaben/{fach}/{aufgabe_nr}
Ressorce | Verb | Semantik | content-type (req) | content-typ (res) | HTTP Statuscode |
---|---|---|---|---|---|
/aufgaben/ | GET | Aufrufen aller Aufgaben zum üben | Application/JSON | 200, 404 | |
/aufgaben/{fach}/{aufgabe_nr} | GET | Aufrufen einer bestimmten Aufgabe zu einem bestimmten Fach | Application/JSON | 200, 404 | |
/aufgaben/{fach}/{aufgabe_nr} | PUT | Aktualisieren der Aufgabe von einem bestimmten Schulfach | Application/JSON | 200, 404 | |
/aufgaben/{fach}/{aufgabe_nr} | POST | Erstellen einer neuen Aufgabe zum bestimmten Schulfach | Application/JSON | 201, 400 | |
/aufgaben/{fach}/{aufgabe_nr} | DELETE | Löschen einer Aufgabe von einem Fach | Application/JSON | 201, 400 | |
/aufgaben/ | DELETE | Löschen aller Aufgaben | Application/JSON | 201, 400 |
Lösung: http://elearning.com/loesung/{fach}/{loesung_aufgabe_nr}
Ressorce | Verb | Semantik | content-type (req) | content-typ (res) | HTTP Statuscode |
---|---|---|---|---|---|
/loesung/ | GET | Aufrufen aller Lösungen | Application/JSON | 200, 404 | |
/loesung/{fach}/{loesung_aufgabe_nr} | GET | Aufrufen einer Lösung von einer bestimmten Aufgabe eines Schulfaches | Application/JSON | 200, 404 | |
/loesung/{fach}/{loesung_aufgabe_nr} | PUT | Aktualisieren einer bestimmten Lösung zu einer Aufgabe | Application/JSON | 200, 404 | |
/loesung/{fach}/{loesung_aufgabe_nr} | POST | Hinzufügen einer Lösung zu einer Aufgabe | Application/JSON | 201, 400 | |
/loesung/{fach}/{loesung_aufgabe_nr} | DELETE | Löschen einer Lösung von einer Aufgabe | Application/JSON | 201, 400 | |
/loesung/ | DELETE | Löschen aller Lösungen | Application/JSON | 201, 400 |
Test: http://elearning.com/test/{fach}/{test_nr}
Ressorce | Verb | Semantik | content-type (req) | content-typ (res) | HTTP Statuscode |
---|---|---|---|---|---|
/test/ | GET | Aufrufen der Tests | Application/JSON | 200, 404 | |
/test/{fach}/{test_nr} | GET | Aufrufen von einem Test zu einem Schulfach | Application/JSON | 200, 404 | |
/test/{fach}/{test_nr} | PUT | Aktualisieren der Tests zu einem Fach | Application/JSON | 200, 404 | |
/test/{fach}/{test_nr} | POST | Hinzufügen von Test zu einem bestimmten Schulfach | Application/JSON | 201, 400 | |
/test/{fach}/{test_nr} | DELETE | Löschen eines bestimmten Tests | Application/JSON | 201, 400 | |
/test/ | DELETE | Löschen aller Tests | Application/JSON | 201, 400 |
Test Ergebnis: http://elearning.com/testergebnis/{fach}/{test_nr_testergebnis}
Ressorce | Verb | Semantik | content-type (req) | content-typ (res) | HTTP Statuscode |
---|---|---|---|---|---|
/testergebnis/ | GET | Aufrufen aller Test Ergebnisse | Application/JSON | 200, 404 | |
/testergebnis/{fach}/{test_nr_testergebnis} | GET | Aufrufen von einem bestimmten Test Ergebnis von einem Schulfach | Application/JSON | 200, 404 | |
/testergebnis/{fach}/{test_nr_testergebnis} | PUT | Aktualisieren eines Bestimmten Test Ergebnisses | Application/JSON | 200, 404 | |
/testergebnis/{fach}/{test_nr_testergebnis} | POST | Hinzufügen von einem Testergebnis | Application/JSON | 201, 400 | |
/testergebnis/{fach}/{test_nr_testergebnis} | DELETE | Löschen eines bestimmten Test Ergebnisses | Application/JSON | 201, 400 | |
/testergebnis/ | DELETE | Löschen aller Ergebnisse | Application/JSON | 201, 400 |
Stundenplan: http://elearning.com/stundenplan/{klasse_stundenplan}
Ressorce | Verb | Semantik | content-type (req) | content-typ (res) | HTTP Statuscode |
---|---|---|---|---|---|
/stundenplan/ | GET | Aufrufen aller Stundenpläne | Application/JSON | 200, 404 | |
/stundenplan/{klasse_stundenplan} | GET | Ein Stundenplan einer bestimmten Klasse aufrufen | Application/JSON | 200, 404 | |
/stundenplan/{klasse_stundenplan} | PUT | Aktualisieren eines Stundenplans einer Klasse | Application/JSON | 200, 404 | |
/stundenplan/{klasse_stundenplan} | POST | Einer Klasse ein Stundenplan hinzufügen | Application/JSON | 201, 400 | |
/stundenplan/{klasse_stundenplan} | DELETE | Löschen eines Stundenplans von einer Klasse | Application/JSON | 201, 400 | |
/stundenplan/ | DELETE | Alle Stundenpläne löschen | Application/JSON | 201, 400 |
Erziehungsberechtigter: http://elearning.com/erziehungsberechtigter/{schueler_id}/{erziehungsberechtigter_id}
Ressorce | Verb | Semantik | content-type (req) | content-typ (res) | HTTP Statuscode |
---|---|---|---|---|---|
/erziehungsberechtigter/ | GET | Ruft alle Erziehungsberechtigte auf | Application/JSON | 200, 404 | |
/erziehungsberechtigter/{schueler_id}/{erziehungsberechtigter_id} | GET | Ruft Erziehungsberechtigter eines bestimmten Schülers auf | Application/JSON | 200, 404 | |
/erziehungsberechtigter/{schueler_id}/{erziehungsberechtigter_id} | PUT | Aktualisieren Informationen von Erziehungsberechtigten eines bestimmten Schülers | Application/JSON | 200, 404 | |
/erziehungsberechtigter/{schueler_id}/{erziehungsberechtigter_id} | POST | Hinzufügen von Erziehungsberechtigten eines Schülers | Application/JSON | 201, 400 | |
/erziehungsberechtigter/{schueler_id}/{erziehungsberechtigter_id} | DELETE | Löschen von Erziehungsberechtigten eines Schülers | Application/JSON | 201, 400 | |
/stundenplan/ | DELETE | Löschen aller Erziehungsberechtigten | Application/JSON | 201, 400 |
Termine: http://elearning.com/termine/{termin}/{datum}
Ressorce | Verb | Semantik | content-type (req) | content-typ (res) | HTTP Statuscode |
---|---|---|---|---|---|
/termine/ | GET | Aufrufen aller wichtigen Termine | Application/JSON | 200, 404 | |
/termine/{termin}/{datum} | GET | Aufrufen von einem Termin mit dessen Datum | Application/JSON | 200, 404 | |
/termine/{termin}/{datum} | PUT | Aktualisieren eines Termins mit seinem Datum | Application/JSON | 200, 404 | |
/termine/{termin}/{datum} | POST | Erstellen eines neuen Termins mit Datum | Application/JSON | 201, 400 | |
/termine/{termin}/{datum} | DELETE | Löschen eines bestimmten Termins | Application/JSON | 201, 400 | |
/termine/ | DELETE | Löschen aller Termine | Application/JSON | 201, 400 |