La pubblicazione di un Book mediante WebAPI Server permette di esporre attraverso il protocollo OData:
✓ Le Tabelle e le relazioni presenti del Model;
✓ I Command, intesi come stored procedure.
Ciascuna Tabella del Model possiede una classe di Properties, denominata Web Api Info. Essa comprende le seguenti property:
✓ Accepted Statement;
✓ Default Column Access che, assumendo i valori Hidden, Read, Write o All (Read e Write), permette di nascondere tutte le colonne, oppure accedervi in lettura, scrittura o entrambe;
✓ Column Override che permette, da apposita interfaccia modale, di sovrascrivere le proprietà di accesso globali con nuovi valori, definiti colonna per colonna;
✓ Public Name, il nome con cui la tabella è esposto.
Anche ciascuna delle relazioni del Model possiede la classe Web Api Info. In tal caso, le property che possono essere impostate sono:
✓ Public Name, il nome con cui la relazione è esposta;
✓ Visible, la visibilità della della relazione da Web Api Server.
Gli oggetti e le colonne devono essere modificati in override.
Occorre quindi creare i webname.
Ciascun book espone dati e azioni su di essi solo nel caso in cui un'esecuzione è ingaggiata. Per tale motivo, al fine di accedere ai dati di un'esecuzione è necessario effettuare una richiesta POST al WebAPI Server.
Il parametro da passare può essere ricavato con una richiesta di questo tipo:
$uri = "http://<server>:<porta>/<prefisso>/Catalog/<book>()"
Invoke-WebRequest -Method Post -Uri $uri -UseDefaultCredentials | ConvertFrom-Json | Select -Property * -ExcludeProperty '@odata.context'
Nella uri può essere aggiunto il parametro $metadata, che consente l'estrazione dei metadati del Book.
I command si comportano come stored procedure. Se la property ExternalVisibility del tab Model è impostata a True, allora tali stored procedure possono essere raggiunte mediante URL.
Il command Start, presente in ogni Book ha un comportamento speciale in relazione alla property Lifetime (Default=600 secondi) del tab Model, Il valore di tale property indica il periodo di tempo in cui lo schema e i dati del Model sono raggiungibili, a seguito del lancio dell'esecuzione.
Una esecuzione comporta, infatti, la creazione di strutture dati fisiche, archiviate nei database Catalog e Working, che sono:
✓ fisicamente generate per tutta la durata della sessione e quindi cancellate, nel caso di una esecuzione interattiva;
✓ fisicamente generate per la durata impostata nella property Lifetime, nel caso di un accesso via Web Api Server.
ESEMPIO: AZIONI PER RICHIAMARE ED EDITARE IL CONTENUTO DI UN DATA MODEL ESPOSTO
Per richiamare i metadati dei book pubblicati sul Web Api Server, si effettua la chiamata: http://server:port/irion/catalog/$metadata
Per richiamare l'indirizzo dell'esecuzione del book ed una tabella del model (e.g. Orders) di un book pubblicato come BookName, si effettua la chiamata: POST http://server:port/irion/catalog/BookName ricevendo, in risposta, la uri dell'esecuzione (ad es. http://server:port/irion/execution/78c2efcd491d4cdba7acb83da0ff86fc)
Effettuando la chiamata: GET http://server:port/irion/execution/token/Orders è, quindi, estratta l'intera tabella Orders (paginata).
Per estrarre la sola riga 2 della tabella Orders, si effettua la chiamata: GET http://server:port/irion/execution/token/Orders(2)
Per aggiornare la riga 1, si effettua la chiamata: PATCH http://server:port/irion/execution/token/Orders(1) definendo nel body (raw) il codice JSON: { "ShipCity": "NewCity" } |