Übung »REST-API spezifizieren (am Beispiel eines Campus-Management-Systems CAMS)«

In dieser Übung geht es darum, für die in einer vorangegangenen Übung gefundenen Aggregates jeweils ein REST-API zu spezifizieren.

Dauer
Ca. 75 min
Video(s) zu der Übung (bitte vorher anschauen)
Erfordert vorher die Bearbeitung von ...
Übung Aggregates bestimmen (am Beispiel eines Campus-Management-Systems CAMS)

Inhalt

Worum geht es?

In der Übung Aggregates bestimmen (am Beispiel eines Campus-Management-Systems CAMS) haben Sie die Aggregates für das kleine CAMS-Beispiel ermittelt.

Jetzt sollen Sie aufbauend auf den Aggregates REST-Endpoints definieren. Halten Sie sich dabei an die Konventionen aus dem entsprechenden Video.

Ihre Aufgabe

Definieren Sie REST-Endpoints für die folgenden Zwecke. Request- und Response-Body interessieren erst einmal nicht. Sie können einen REST-Endpoint in der Form GET /customers/{c-id} notieren.

  1. Finde alle Kurse (Course)
  2. Finde einen bestimmten Kurs anhand seiner ID
  3. Setze einen Professor für einen Kurs
  4. gebe alle Studiengänge (StudyProgram) zurück
  5. gebe einen bestimmten Studiengang zurück
  6. gebe alle Fächer (Course) zu einem Studiengang zurück
  7. lösche alle Studiengänge
  8. lösche alle Zuordnungen von Fächern (Course) zu einem Studiengang
  9. lege neuen Studiengang an
  10. Ordne ein Fach (Course) einem Studiengang zu
  11. Ändere den Namen eines Studiengangs
  12. Finde alle Studierenden mit Matrikel-Nummern, die mit 1,2 oder 3 beginnen
  13. Gebe die Adresse einer Studentin zurück
  14. Ändere die Adresse eines Studenten
  15. Finde alle geplanten Treffen (PlannedMeeting) einer Lerngruppe (StudyGroup) an Donnerstagen (Annahme: Tage haben Nummern, Do = 4)
  16. Lege ein neues Treffen einer Lerngruppe zum Thema „REST“ an

Lösung

  1. Finde alle Kurse (Course)
    • GET /courses
  2. Finde einen bestimmten Kurs anhand seiner ID
    • GET /courses/{course-id}
  3. Setze einen Professor für einen Kurs
    • PUT /courses/{course-id}/professors/{professor-id}
  4. gebe alle Studiengänge (StudyProgram) zurück
    • GET /studyPrograms
  5. gebe einen bestimmten Studiengang zurück
    • GET /studyPrograms/{studyProgram-id}
  6. gebe alle Fächer (Course) zu einem Studiengang zurück
    • GET /studyPrograms/{studyProgram-id}/courses
  7. lösche alle Studiengänge
    • DELETE /studyPrograms
  8. lösche alle Zuordnungen von Fächern (Course) zu einem Studiengang
    • DELETE /studyPrograms/{studyProgram-id}/courses
  9. lege neuen Studiengang an
    • POST /studyPrograms
  10. Ordne ein Fach (Course) einem Studiengang zu
    • PUT /studyPrograms/{studyProgram-id}/courses/{course-id}
  11. Ändere den Namen eines Studiengangs
    • PATCH /studyPrograms/{studyProgram-id} (der neue Name muss in den Request-Body)
  12. Finde alle Studierenden mit Matrikel-Nummern, die mit 1,2 oder 3 beginnen
    • GET /students?matrNumFrom=10000000&matrNumUntil=39999999
  13. Gebe die Adresse einer Studentin zurück
    • GET /students/{student-id}/address
  14. Ändere die Adresse eines Studenten
    • POST /students/{student-id}/address
  15. Finde alle geplanten Treffen (PlannedMeeting) einer Lerngruppe (StudyGroup) an Donnerstagen (Annahme: Tage haben Nummern, Do = 4)
    • GET /studyGroups/{studyGroup-id}/plannedMeetings?day=4
  16. Lege ein neues Treffen einer Lerngruppe zum Thema „REST“ an
    • POST /studyGroups/{studyGroup-id}/plannedMeetings (das Thema “REST” und sonstige nötigen Attribute müssen dann in den Request-Body)