Questa è una vecchia versione del documento!
Indice
Introduzione
Il modulo serve per esporre dei web services utilizzando la modalità REST. E' presente nella cartella 'wsrest' all'interno di '/lib'.
Definizione routes
Le routes vanno censite su un apposito file di configurazione: '/config/routes.ini'. Per ogni route devono essere specificate le seguenti informazioni:
- VERB: indica il 'verb http' (GET o POST)
- CONTROLLER: è il nome della classe controller (presente in '/controller') esclusa l'estensione ('.php')
- ACTION: è il nome del metodo (public) del controller da invocare
- OUTPUT: indica il formato dell'output (xml/json)
- CHECKAUTH: indica se la chiamata deve essere autenticata (se 1 = controlla autenticazione, altrimenti 0)
Esempio
[dummyActionGET] VERB = GET CONTROLLER = dummyController ACTION = dummyActionGET OUTPUT = json CHECKAUTH = 1
Controller
Il controller ha il compito di gestire la chiamata. Per ogni controller possono essere presenti più 'actions'. Ogni 'action' corrisponde ad un metodo 'public', che riceve in ingresso un array di parametri. Ogni controller estende la classe padre 'RestController'. Ogni 'action' deve restituire un risultato (sarà poi compito del server REST formattare adeguatamente l'output).
Esempio di una action
public function dummyActionGET($params) { $toReturn = array( 'chiave1' => 'valore1', 'chiave2' => 'valore2', 'params' => array() ); if ($params != null) { $toReturn['params'] = $params; } return $toReturn; }
Autenticazione
Nel file 'routes.ini' sono presenti i seguenti metodi per la gestione dell'autenticazione:
- GetItaEngineContextToken: date in input le credenziali per il login, restituisce un token di autenticazione che dovrà essere utilizzato per tutte le chiamate successive autenticate.
- CheckItaEngineContextToken: controlla la validità del token in input.
- DestroyItaEngineContextToken: cancella il token indicato in input dalla sessione.
Esempio di chiamata per ottenere un token di autenticazione
Chiamate autenticate
Per le chiamate autenticate deve essere passato nell'header HTTP della request il parametro X-ITA-TOKEN, che deve contenere il token ottenuto dalla chiamata 'GetItaEngineContextToken' (il token deve essere valido e non scaduto).
Multipart Request
Per le richieste multipart, l'unica differenza rispetto alle altre chiamate è che nell'array dei parametri in input della action viene passata la chiave 'FILES' di tipo array, che contiene l'elenco dei file (corrisponde alla variabile superglobal di PHP '$_FILES')