REST Service for POPCORN - ILIAS
alex
2025-07-13 e0954b51705719b6a40e129cacf8688e0fba072b
README.md
@@ -30,6 +30,37 @@
    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.
#### Testen
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 Config
Apache muss als Proxy für globus-ilias-rest fungieren und Verbindungen an diesen weiterreichen.
@@ -37,8 +68,24 @@
__ACHTUNG__
Der Service __muss__ unter https laufen. Ansonsten kann das AUTH-TOKEN ausgelesen werden.
TODO
#### 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
@@ -52,10 +99,16 @@
Die Antwort prettyfeien:
    curl localhost:4101/users?token=AUTHTOKEN | jq .
### Routes
### globusfm-dev2
Kann zugegriffen werden über
    https://globusfm-dev2.minervis.com/popcorn/users?token=$TOKEN
## Routes
Verfügbare Routen sind:
@@ -64,4 +117,10 @@
    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