Einfacher Medienupload ist ein Microservice, der das Hochladen von Lerninhalten in das LMS imc Learning Suite vereinfacht. Er kapselt die komplexen LMS-Endpunkte (Upload, Metatag-Befüllung, Lerninhalte-Templates, SCORM-/WBT-Erzeugung) hinter einer schlanken REST-API.
Konfiguration
Um den Einfachen Medienupload nutzen zu können, ist es notwendig, die Typen zur Erstellung der verschiedenen Lerninhalte wie folgt zu konfigurieren:
-
Rufen Sie die Funktion Mandanten auf.
-
Markieren Sie den Mandant, der für den Medienupload verwendet werden soll.
-
Klicken Sie in der Symbolleiste auf das Zahnrad-Icon Einstellungen.
-
Wählen Sie im Dropdown-Menü die Option Einfacher Medienupload aus.
-
Definieren Sie im Konfigurationsbildschirm die Lerninhaltetypen, die pro Service verwendet werden sollen, um Lerninhalte aus hochgeladenen Dateien zu erstellen.
Authentifizierung und Autorisierung
Jeder Request muss ein gültiges JSON Web Token (JWT) mitbringen – entweder als Authorization: Bearer <token> Header oder als Cookie (Standardname imcAuthToken). Der Cookie-Wert darf optional mit Bearer beginnen. Bei dem Token muss es sich um ein Bearer-Token mit Grant-Typ password handeln. Nähere Informationen zur Anforderung eines solchen Tokens finden Sie unter Anfordern eines Zugriffstokens für die Nutzung der REST-API.
Neben einer erfolgreichen Authentifizierung muss der Nutzer, für den das Token erstellt wurde, im LMS auch Zugriff auf die entsprechenden Channel-Menüpunkte haben (bzw. Superuser sein). Menü-/Navigations-Berechtigungen werden im LMS über die übliche Rollen-/Rechteverwaltung gesteuert. Fehlt der Zugriff gibt der Service die Fehlermeldung 403 Forbidden zurück.
Sprache
Fast alle Endpunkte erwarten den HTTP-Header Accept-Language. Er bestimmt, in welcher Sprache das Lerninhalte-Template und die Metatags vom LMS geladen werden. Fehlt der Header bei den Endpunkten, die ihn als Pflichtparameter führen, antwortet der Service mit der Fehlermeldung 400 Bad Request.
service-Parameter
Viele Endpunkte besitzen einen optionalen Query-Parameter service. Er steuert, welche Einfacher Medienupload-Einstellungen (Template-/Typ-IDs) pro Mandant (Client) geladen werden. Gültige Werte sind in der nachfolgenden Tabelle aufgeschlüsselt:
|
Wert |
Default bei |
|---|---|
|
channels |
|
|
ecc |
|
|
imcExpress |
intern für alle SCORM-/WBT-Calls (nicht überschreibbar) |
Fehlermeldungen
Alle Fehler des LMS werden durchgereicht und übersetzt. Die nachfolgende Tabelle zeigt alle Mappings:
|
LMS-Status |
Service-Antwort |
|---|---|
|
400 |
400 Bad Request |
|
401 |
401 Unauthorized |
|
403 |
403 Forbidden |
|
404 |
404 Not Found |
|
406 |
406 Not Acceptable (z. B. Virenfund) |
|
sonstige |
500 Internal Server Error |
Media-Erstellung mittels EMU
Alle API-Endpunkte befinden sich unter dem Basispfad /easy-media-upload/api/mediaupload.
Eine Postman-Collection mit allen API-Calls finden Sie hier: Easy Media Upload.json
Bevor ein Lerninhalt erstellt werden kann, muss einer der folgenden vier API Punkte angesprochen werden (siehe Schritt 1), um ein Template für die Lerninhalte-Erstellung (siehe Schritt 2) zu erhalten. Lediglich der Upload und die Erstellung eines SCORM-WBT funktioniert für sich basierend auf der ZIP-Datei (siehe Standalone).
Schritt 1: Erhalt eines Templates
Die Endpunkte /event und /activity liefern für den jeweiligen Lernobjekt-Typ ein leeres Template zurück. Der Endpunkt /file hingegen lädt eine ausgewählte Datei in das LMS-Temp-Verzeichnis und liefert dann ein vorbefülltes Template zurück. Der Endpunkt /link liefert ebenfalls ein mit Metadaten vorbefülltes Template zurück (via OpenGraph).
1.1 POST /file – Datei hochladen
Lädt eine beliebige Datei in das LMS-Temp-Verzeichnis hoch und liefert ein vorbefülltes Template zurück.
|
Methode/Pfad |
|
|
Consumes |
|
|
Erfolg |
201 Created |
Parameter
-
file (Multipart-Part, Pflicht) – die hochzuladende Datei
-
Accept-Language (Header, Pflicht) – Plattformsprache
-
service (Query, optional, Default channels)
1.2 POST /link – Link hochladen
Erzeugt aus einer URL ein Link-Media-Template. OpenGraph-Metadaten (Titel, Beschreibung, Vorschaubild) werden automatisch ermittelt.
|
Methode/Pfad |
|
|
Consumes |
|
|
Erfolg |
201 Created |
Body-Beispiel:
{ "link": "https://example.com/page" }
Parameter
-
Accept-Language (Header, Pflicht) - Plattformsprache
-
service (Query, optional, Default channels)
1.3 GET /event – Event-Media-Template abrufen
Liefert ein leeres Template für Lerninhaltetyp Event.
|
Methode/Pfad |
|
|
Erfolg |
200 OK |
Parameter
-
Accept-Language (Header, Pflicht) – Plattformsprache
-
service (Query, optional, Default ecc)
1.4 GET /activity – Activity-Media-Template abrufen
Analog zu /event gestaltet, aber für den Lerninhaltetyp Activity.
|
Methode/Pfad |
|
|
Erfolg |
200 OK |
Parameter
-
Accept-Language (Header, Pflicht) – Plattformsprache
-
service (Query, optional, Default ecc)
Schritt 2: Endpunkte zur Lerninhalte-Erstellung
Um einen Lerninhalt aus den in Schritt 1 erhaltenen Templates zu erstellen, können Informationen im Template ergänzt und mittels POST oder PUT /media final im System angelegt werden. Dabei werden Dateien aus dem LMS-Temp-Verzeichnis in die jeweiligen Zielordner verschoben, Metatags werden aufbereitet und Pflichtmetatags geprüft. Ist alles in Ordnung, wird das Lerninhalte-Objekt im LMS angelegt und die neue ID zurückgegeben.
2.1 POST /media - Lerninhalte final anlegen
Speichert ein zuvor (über /file, /link, etc.) vorbereitetes und ausgefülltes RestMedia endgültig im LMS.
|
Methode/Pfad |
|
|
Erfolg |
201 Created |
|
Rückgabe |
Objekt mit der neuen Lerninhalt-ID |
Body
RestMedia (vollständig befülltes Template)
Parameter
isCourseSpecific (Query, optional, Default false)
2.2 PUT /media – Lerninhalte aktualisieren
Aktualisiert einen bestehenden Lerninhalt. Die id muss im Body enthalten sein.
|
Methode/Pfad |
|
|
Erfolg |
200 OK |
|
Rückgabe |
Objekt mit der Lerninhalt-ID |
Ähnliche Aufbereitung wie bei POST /media, inkl. Verschieben von Temp-Dateien und Pflicht-Metatag-Prüfung.
Standalone: SCORM WBT Upload über EMU
POST /scorm/create/{scormVersion} – SCORM-Paket hochladen & publizieren
Lädt ein SCORM-ZIP hoch, erzeugt einen SCORM-WBT-Lerninhalt und publiziert ihn.
|
Methode/Pfad |
|
|
Consumes |
|
|
Erfolg |
201 Created |
|
Rückgabe |
Objekt mit der Lerninhalt-ID |
Parameter
-
scormVersion (Pfad, Pflicht) – z. B. 1.3 (imc Express unterstützt nur SCORM 1.3.)
-
file (Multipart, Pflicht) – das SCORM-ZIP