Il service SELECT viene utilizzato per l'estrapolazione dei dati, è infatti possibile interrogare il sistema cloud, indicando una specifica tabella, per ottenere la lista di tutti i record in esso presente o la lista dei soli record modificati o inseriti da uno specifico date/time.

Il service in questione può essere richiamato tramite il seguente url: https://api.gooseapp.com/select/


La struttura dati JSON dovrà essere inviata tramite POST, qui di seguito un esempio JSON di chiamata:

     

{
code: "DEV001",
key: "09mpada9nx4mxl3346055518sf89hcyga74mwmhucgf9j7cg78",
table: "CON_TRO"
}

      

Questa chiamata restituisce un JSON contenente tutti i record presenti su tabella CON_TRO.


I parametri disponibili per la chiamate SELECT sono i seguenti.

Nome


Tipo

Obbligatorio


Descrizione

code


varchar(6)


Yes


Codice azienda

key


varchar(200)


Yes


Chiave API di sicurezza


table


varchar(7)


Yes


Nome tabella


fields


varchar(255)


No


Lista dei campi che si desidera ricevere, di default vengono restituiti tutti i campi tabella.

Nel caso si desideri ricevere solo una lista specifica di campi è sufficiente indicarli con una virgola come separatore.

Es: "RECORD_ID,CORAS,CORA2,COCON,COCLI,COFOR"


from


varchar(50)


No


Formato date/time "yyyy-mm-dd hh:mm:ss" che permette di richiedere solo i record modificati o inseriti da un determinato periodo in avanti.


In alternativa è possibile utilizzare la keyword "latest" per avere solo la lista dei record modificati o inseriti su una data tabella dall'ultima chiamata andata a buon fine.


imc


true/false


No


Il parametro imc sta per "Include My Call".

Questo parametro viene preso in considerazione solo se valorizzato anche il parametro from, con un formato date/time valido o con valore "latest".


Nel caso sia impostato a true restituisce tutti i record modificati o inseriti, compresi quelli modificati o inseriti dal proprio service altrimenti esclusi.

filter


array


No


Il parametro filter permette di applicare un filtro sulla tabella indicata.

Questo parametro richiede una sotto struttura dati con i seguenti parametri:
key: Chiave di filtro (nome del campo sul quale si vuole effettuare la query)
value: Valore di filtro

Se valorizzato verranno ignorati i parametri from ed imc.


I parametri fields e from non sono obbligatori, risultano però fondamentali nel caso si vogliano eseguire operazioni di sync incrementali, soprattutto from che può essere utilizzato oltre che nel formato date/time anche tramite keyword "latest".

Una chiamata come la seguente permette infatti di ottenere la lista di tutti i record, comprensivi di tutte le colonne dati, modificati dall'ultima chiamata del proprio service.
  

{
 code: "DEV001",
 key: "09mpada9nx4mxl3346055518sf89hcyga74mwmhucgf9j7cg78",
 table: "CON_TRO",
 from: "latest"
}

  

Nel caso invece si volesse ottenere solo una lista di campi specifici:

  

{
 code: "DEV001",
 key: "09mpada9nx4mxl3346055518sf89hcyga74mwmhucgf9j7cg78",
 table: "CON_TRO",
 from: "latest",
 fields: "RECORD_ID,CORAS"
}

  

Quest'ultima chiamata restituirebbe solo i record modificati dall'ultima chiamata andata a buon fine con i campi RECORD_ID e CORAS della tabella CON_TRO.

Nel caso invece si volesse ottenere uno specifico record:

  

 {
 code: "DEV001",
 key: "09mpada9nx4mxl3346055518sf89hcyga74mwmhucgf9j7cg78",
 table: "CON_TRO",
 fields: "RECORD_ID,CORAS",
 filter: {
 key: "RECORD_ID",
 value: "0-1"
}
} 

  

Quest'ultima chiamata restituirebbe i campi RECORD_ID e CORAS solo per record con valore "0-1" sul campo RECORD_ID su tabella CON_TRO.


Nel caso l'operazione eseguita vada a buon fine si ottiene il seguente JSON:

{
 status: "OK",
 result:
 {
  total: 3,
  data: 
  [
   {
    RECORD_ID: "0-1",
    CORAS: "Test 1",
    COTEL: "0113486474"
   },
   {
    RECORD_ID: "0-2",
    CORAS: "Test 2",
    COTEL: "0113486474"
   },
   {
    RECORD_ID: "0-3",
    CORAS: "Test 3",
    COTEL: "0113486474"
   }
  ]
 }
} 

  

Lo status "OK" indica che l'operazione di SELECT è andata a buon fine, nella struttura result sono poi presenti i campi total (totale righe selezionate) e data (struttura dati di ritorno).


Nel caso l'operazione eseguita non vada a buon fine si ottiene il seguente JSON:
  

{
 status: "error",
 error: 
 {
   code: 120,
   description: "Table 'client_goose_DEM001.CON_TRO' doesn't exist'"
 }
}


In caso di errore lo status viene restituito con valore "error" e nella struttura error vengono indicati il codice di errore e una descrizione dell'errore.


Vuoi chiederci qualcosa?
Scrivici a: 
support@gooseapp.com