Repository navigation
Beziehung Lernraum zu LearningOutcome
Zwischen einem Lernraum und einem Learning Outcome besteht eine 1 <-> 0..1 Beziehung. Einem Lernraum wird also maximal ein Learning Outcome zugeordnet. Um diese Beziehung in der REST-Schnittstelle abzubilden, ergeben sich zwei Möglichkeiten, um dies zu implementieren.
Eine Möglichkeit wäre es, dass jeder Entitiy ein eigenes Repository zur Verfügung steht. Wenn ein Lernraum mitsamt Learning Outcome erstellt werden soll, würden folgende Schritte durchlaufen werden:
- POST auf die URL /learningSpaces, um einen Lernraum zu erzeugen
- POST auf die URL /learningOutcomes, um ein Learning Outcome zu erzeugen
- PUT auf die URL /learningSpaces/{id}/learningOutcome, um die Assoziation zu knüpfen
Bei obiger Möglichkeit kann ein Learning Outcome allerdings nicht als Teil eines Lernraum-Aggregats gesehen werden. Ein Learning Outcome wäre nur dann Teil einer Lernraum-Aggregats, wenn jenes über den REST-Controller des Lernraum verwaltbar wäre Quelle. Der Ablauf zur Erzeugung eines Lernraums mitsamt Learning Outcome würden dann wie folgt aussehen:
- POST auf die URL /learningSpaces, um einen Lernraum zu erzeugen
- POST auf die URL /learningSpaces/{id}/learningOutcome, um ein Learning Outcome zu erzeugen und dies mit dem Lernraum zu verknüpfen
Auch wenn die zweite Möglichkeit für den Anwendungsfall sinnvoll erscheint, so ist dies nicht ohne weiteres mit den gewählten Technologien implementierbar. Die von Spring Data Rest generierten REST-Controller sehen keine POST-Methoden auf Assoziationen vor, welche die Ressource an sich erzeugen. Auch wenn das Implementieren manuell geschehen würde, so stellt das benutze Frontend-Framework Anguar4-Hal keine Methoden zur Verfügung, um eine solche assoziierte Ressource anzulegen. Die Methoden addRelation und updateRelation haben als Content-Type ausschließlich Uri-Lists.
Aufgrund beschriebener Gegebenheiten wurde sich für die erste Möglichkeit entschieden, welche zur Folge hat, dass ein Learning Outcome nicht als Teil eines Lernraum-Aggregats gesehen werden kann.