Indice articolo

È stato sviluppato un connettore SQL all’interno delle REST API di smeup, che ha la funzionalità di esporre in modalità REST le informazioni presenti su database.

Le smeup Rest API sono il prodotto con cui siamo in grado di esporre Web API di alcuni dei sistemi di smeup: principalmente smeup ERP e Kokos.

Con il connettore SQL estendiamo la possibilità di interfacciarsi anche a database server.

Screenshot che illustra l'inserimento del connettore SQL nelle rest api di smeup

Per utilizzare il connettore è necessario aggiungere alla chiamata l’header connector-name: sql.

Il connettore rispetta gli standard previsti per gli altri connettori già presenti nelle REST API smeup:

  • file di properties;
  • file di actions;
  • struttura standard del json di risposta.

L’aggiunta di questo nuovo connettore a quelli precedentemente sviluppati porta il vantaggio di poter interagire, in un’unica interfaccia e in maniera completamente trasparente, anche con dati provenienti da database sql. Grazie alla definizione di una struttura standard per il json di risposta, viene garantita una gestione omogenea dei dati, a prescindere dalla loro provenienza.

Analizziamo nel dettaglio le caratteristiche del nuovo connettore.

File di properties

Il file di properties, che nel caso del connettore SQL sarà definito con il nome sql.properties, racchiude le informazioni riguardanti i parametri di connessione con il DB.

Per informazioni tecniche si rimanda alla documentazione di prodotto.

Attualmente viene supportata la connessione ai seguenti database:

  • DB2
  • MySQL
  • Microsoft SQL Server

Inoltre, è prevista la connessione ad un solo db per installazione.

File delle actions

Nel file delle actions sql.actions vengono definite le query SQL.

Nella query è possibile indicare anche delle variabili che vengono gestite con una sintassi particolare per evitare problemi relativi alla sicurezza come, ad esempio, la sql injection.

Le variabili sono specificate all’interno del campo “sqlParameters”, in cui è necessario indicare anche il tipo di dato.

{
   "alias":"ACTION4",
   "fun":"select * from movies where release_year >= ? and director like ? order by release_year",
   "sqlParameters":[
      {
         "name":"release_year",
         "type":"INTEGER"
      },
      {
         "name":"director",
         "type":"VARCHAR"
      }
   ]
}

Caratteristiche aggiuntive

È possibile impostare dei parametri aggiuntivi nella richiesta per gestire la paginazione:

  • limit: numero di righe per pagina
  • offset: indice per il primo elemento dell’estrazione

Un esempio di action con la paginazione:

{
   "alias":"ACTION_PAG",
   "fun":"SELECT  * FROM QLIK.ESTRVENSTOR LIMIT ? OFFSET ?",
   "sqlParameters":[
      {
         "name":"LIMIT",
         "type":"INTEGER"
      },
      {
         "name":"OFFSET",
         "type":"INTEGER"
      }
   ]
}

Ultima questione, ma non meno importante, grazie ad un’altra feature delle REST API – l’aggregatore – è possibile creare dati aggregati partendo da un database.

Per maggiori informazioni

Consigliamo di consultare la documentazione dedicata.