REST Service für POPCORN -> ILIAS.
Stellt in ILIAS-SOAP fehlende Funktionen bereit für POPCORN (GS-2101).
Als Erstes wird die ENV Variable "NODE_ENV" gebraucht. Diese muss gesetzt sein.
Je nach ENV (dev, test, prod, ...) muss dann auch die settings Datei angepasst werden.
Der REST-Service an sich muss auf dem gleichen Rechner laufen auf dem auch die ILIAS DB läuft (ansonsten die Config anpassen).
node app.js
bzw. bei Nutzung von pm2 (empfohlen)
pm2 start app.js --name globus-ilias-rest
pm2 save
globus-ilias-rest benötigt eine PHP Komponente um die ILIAS internen Funktionen nutzen zu können.
Dazu den Ordner "php/globus-ilias-rest" im Projektverzeichnis symlinken in den ILIAS Basisordner (wo sich auch ilias.php befindet).
cd $ILIASBASEDIR
cp -ar $RESTPROJ/php/globus-ilias-rest globus-ilias-rest
Auf globusfm-dev2 gibt es das Problem, dass die api.php nicht aufgerufen werden kann. Es erfolgt immer ein Redirect auf login.php.
Das passiert nicht auf DEV.
api.php zu login.php umbenennen.
Pfad in den settings entsprechend anpassen.
Folgende URL sollte dann funktionieren für die PHP Komponente:
https://globusfm-dev2.minervis.com/globus-ilias-rest/login.php?token=$PHPTOKEN&command=getUser&usr_id=573
Die API dann über:
https://globusfm-dev2.minervis.com/popcorn/api/user/userid/573?token=$TOKEN
Achtung die Tokens sind unterschiedlich!
Apache muss als Proxy für globus-ilias-rest fungieren und Verbindungen an diesen weiterreichen.
ACHTUNG
Der Service muss unter https laufen. Ansonsten kann das AUTH-TOKEN ausgelesen werden.
a2enmod proxy
a2enmod proxy_http
z.B. unter /etc/apache2/sites-available/globusfm-dev2.minervis.com.conf
# Proxy all requests to /popcorn/... to the globus-ilias-rest service
ProxyPreserveHost On
ProxyPass /popcorn http://localhost:4101
ProxyPassReverse /popcorn http://localhost:4101
testen
https://globusfm-dev2.minervis.com/popcorn/users?token=AUTHTOKEN
Es wird ein Auth-Token gebraucht um den Service zu benutzen. Dieses wird in settings.js definiert.
Dann kann der Service angesprochen werden (test mit curl):
curl localhost:4101/users?token=AUTHTOKEN
Die Antwort prettyfeien:
curl localhost:4101/users?token=AUTHTOKEN | jq .
Kann zugegriffen werden über
https://globusfm-dev2.minervis.com/popcorn/users?token=$TOKEN
Verfügbare Routen sind:
GET /users
GET /users/count
GET /user/login/:login
GET /user/userId/:userId
GET /kurs
GET /kurs/items/:ref_id
GET /kurs/teilnehmer/:ref_id
GET /kurs/teilnehmer/:ref_id/count
...