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