Skip to content

Beziehung Lernraum zu LearningOutcome

JannIntveen edited this page Jun 12, 2019 · 1 revision

Beziehung Lernraum zu Learning Outcomes

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.

Learning Outcome als eigenes Aggregat

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:

  1. POST auf die URL /learningSpaces, um einen Lernraum zu erzeugen
  2. POST auf die URL /learningOutcomes, um ein Learning Outcome zu erzeugen
  3. PUT auf die URL /learningSpaces/{id}/learningOutcome, um die Assoziation zu knüpfen

Learning Outcome als Teil des Lernraum-Aggregats

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:

  1. POST auf die URL /learningSpaces, um einen Lernraum zu erzeugen
  2. 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.

Resultierende Entscheidung

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.

Clone this wiki locally