# Globus-ILIAS-Rest REST Service für POPCORN -> ILIAS. Stellt in ILIAS-SOAP fehlende Funktionen bereit für POPCORN (GS-2101). ## Voraussetzungen - node >= v22 - pm2 ## Setup ### Env und Settings 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. ### Service 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 ### PHP Komponente 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 __PROBLEM mit api.php__ 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. _Workaround_ api.php zu login.php umbenennen. Pfad in den settings entsprechend anpassen. ### Apache Config 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. #### MOds aktivieren a2enmod proxy a2enmod proxy_http #### Apache Config anpassen 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 ## Usage 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 . ### globusfm-dev2 Kann zugegriffen werden über https://globusfm-dev2.minervis.com/popcorn/users?token=$TOKEN ## Routes 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