WikiUp


L?indirizzo per accedere all?interfaccia swagger relativo alle SmeUP Rest API e all?A39Service è:
http://address:port/apiservice/swagger/index.html

Tipologia di API


Esponiamo due tipologia di API. Un API che permette di interagire con un CRUD sugli oggetti applicativi (REST Api), l?altro che permette configurare funzioni da esporre come API Http (A39Service). In questo documento vedremo soprattutto la tipologia relativa all?A39Service.

Elenco degli endpoint (A39Service)


Get all actions:

Address: http://address:port/apiservice/api/services/action-management/actions
Method: GET

Restituisce la lista di tutti gli alias e le corrispettive FUN (Azioni) definite all'interno degli script LOA39 presenti su AS400.

Get a single action:

Address: http://address:port/apiservice/api/services/action-management/action/{key-field}
Method: GET

Restituisce il dettaglio di un singolo alias che andiamo a richiamare.

Run a single action:

Address: http://address:port/apiservice/api/services/action-management/runAction/{key-field}
Method: POST

Permette di lanciare una FUN a tutti gli effetti, richiamando il suo alias. A questa chiamata va eventualmente poi passato un oggetto JSON, contenente in formato chiave-valore tutte le variabili della FUN che vanno risolte.

Esempio:
{
"parameters": No InterWiki reference defined in properties for Wiki called "\\ {\\ "tipo""!

}

Reload actions:

Address: http://address:port/apiservice/api/services/action-management/reloadActions
Method: GET

Ricarica gli script presenti su AS400, utile quando creiamo un nuovo script o effettuiamo una modifica ad uno script esistente.

Autenticazione tramite API Key


È stato utilizzato un sistema di autenticazione tramite API Key per l'accesso agli endpoint A39 e smeup-api (N.B.: verranno chiamati "smeup-api" tutti gli endpoint NON A39 supportati da smeup-rest-api).
Le API key vengono inizialmente lette dalle variabili d'ambiente "A39KEY" e "RESTAPIKEY". Nel caso in cui la lettura da variabile d'ambiente non fosse possibile (variabili inesistenti o = null), verrà eseguito un tentativo di lettura da file di configurazione, sotto chiave "smeup.restApiKey" e "smeup.a39Key".
Se entrambi i tipi di lettura delle API key falliscono, sarà impossibile accedere a uno o ad entrambe le tipologie di endpoint. Questa feature può essere utilizzata nel caso in cui si voglia rendere accessibile solo una tipologia di endpoint.
L'ordine di priorità per ciascun endpoint è quindi il seguente: 1. Variabile d'ambiente 2. File di configurazione 3. (in caso di mancanza dei primi 2) endpoint non accessibile con alcuna chiave.
N.B. SICUREZZA API KEYS: cancellare completamente le chiavi-valori relative alle APIKEY dal file di configurazione smeup.properties renderà l'endpoint relativo inaccessibile, mentre lasciare le chiavi senza valore nel seguente modo:
smeup.a39Key=
smeup.restApiKey=
renderà gli endpoint accessibili utilizzando una stringa vuota "" come autenticazione.

Transformer

Per il momento è stata implementato un solo tipo di transformer:
TransformerCDATAFromXML
Per poter richiamare questo post transformer, va definito correttamente nello script SCP_SET LOA39_XX.

::A39.PSTTRS Name="Transformer Post" Value="com.smeup.api.apiservice.models.actions.TransformerCDATAFromXML"

Deployment tramite docker

È stata preparata una directory con un file bash di setup (setup.sh) che andrà a preparare l?ambiente corretto per il deploy di questa applicazione.
Dopo aver lanciato il file di setup dovremo prima compilare correttamente il file di configurazione (smeup.properties) che si presenta così:

smeup.system=
smeup.user=
smeup.pwd=
smeup.env=
smeup.ccsid=1144
smeup.rowsPerPage=300
smeup.minIdle=2
smeup.maxIdle=8
smeup.maxTotal=32
smeup.a39Key=
smeup.restApiKey=

Poi dovremo scaricare l?immagine docker dal docker-registry di smeup, seguendo i seguenti passi:

- Eseguire un docker login:
docker login docker-registry.smeup.cloud
- Eseguire un docker pull dell'immagine:
docker pull docker-registry.smeup.cloud/smeup/a39-api
Lanciamo poi il docker run:
docker run -dp 6090:8080 --name api-container -e A39KEY="a39" -e RESTAPIKEY="api" -v $(pwd)/smeup.properties:/opt/payara/etc/smeup-rest-api/smeup.properties -v $(pwd)/logs:/opt/payara/var/smeup-rest-api/api/log docker-registry.smeup.cloud/smeup/a39-api
Per effettuare cambiamenti al file di configurazione (cambiare API keys, ambiente o utente per la connessione ad AS400), basterà eliminare il vecchio container (se presente), cambiare le configurazioni nel file smeup.properties, ed eseguire nuovamente il comando docker run scritto qua sopra.

Deployment tradizionale

In alternativa si può scaricare il file .war da Nexus a questo link:
http://mauer.smeup.com/nexus/service/rest/v1/search/assets/download?repository=releases&group=com.smeup.api&name=apiservice&sort=version&maven.extension=war
Per poi deployarlo normalmente in un application Server Payara. Per fare questo è necessario creare il file di configurazione dell?applicazione sotto il path: {USER-HOME}/etc/smeup-rest-api/smeup.properties e compilarlo correttamente.










Add new attachment

Only authorized users are allowed to upload new attachments.
«