Zum Hauptinhalt springen

Seeding

Für den initialen Import von Kursen, Semestern, Übungen, Sprachen, Aufgaben-Pools und weiteren Entitäten gibt es eine JSON-Schnittstelle. Der Import erfolgt mit dem SeedRunner:

gradle bootRun --args='seed:seed ./seed'

subato-seed ist das Verzeichnis, das die JSON-Dateien beinhaltet. Aus der Demo kann der Aufbau der Dateien abgeleitet werden. Zudem kann aus den DTOs in de.hsrm.sls.subato.seed abgeleitet werden, was importiert werden kann. Bei der Zuordnung der JSON-Attribute zu den Feldern in den DTOs wird die Snake-Case Namenskonvention verwendet. Sämtliche Enum-Werte können ebenfalls im Code nachgesehen werden.

Die IDs dienen der Referenzierung im Rahmen des Imports, das System vergibt eigene IDs und speichert die angegebenen IDs in der jeweiligen Tabelle unter der Spalte sourceId ab.

Noch ein paar Hinweise:

  • Die IDs dienen der Referenzierung im Rahmen des Imports, das System vergibt eigene IDs und speichert die angegebenen IDs in der jeweiligen Tabelle unter der Spalte sourceId ab. Die erzeugten Entitäten haben also nicht die in den JSON-Dateien angegebenen IDs.
  • Bisher können nur Aufgaben importiert werden, die sich in einem Git-Repository befinden. Dieses wird als Aufgaben-Pool in task_pools.json angelegt. Bei der Verlinkung der Aufgaben in exercises.json (Attribut task_instances) bezieht sich die ID der Aufgabe auf das Feld subatoId in der meta.xml (siehe STEF-Spezifikation).