Ricerca nel database

Il client richiede una ricerca nel database chiamando la URL

http(s):// www.nome-del-sito.suffisso / API / SarAtSearch / 0

Per esempio, sul sito test.mygelsia.ituseremmo

https://test.mygelsia.it/API/SarAtSearch/0

Come parametri, il client passa un parametro chiamato table col nome della tabella dentro la quale cercare e una (o più) coppie di nome campo, valore campo per indicare cosa cercare. Per esempio, per cercare gli pneumatici per auto di marca Bridgestone nella tabella prodotto useremmo ?table=prodotto&marca=Bridgestone&tipo=auto

Il server risponde con un vettore in formato JSON di tutte le id dei record che rispondono alla ricerca.

Vediamo un esempio concreto. La app MyGelsia, avendo caricato il profilo cliente usando il metodo GET visto all'inizio di questo capitolo, decide di caricare l'elenco delle utenze del cliente Luca Accomazzi. Deve dunque fare una ricerca nella tabella IS_UTE alla ricerca di tutti i record che fanno capo al codice cliente 192956.

Anche in questo caso per semplicità vediamo un HTML che dimostra come effettuare la chiamata:

  <!DOCTYPE html>
  <html lang='it'>
  <head>
        <meta charset='utf-8' />
        <title>Ricerca utenze del cliente</title>
  </head>
  <body>
  <!-- post https per una ricerca sicura con risultati mutevoli -->
  <form action='https://test.mygelsia.it/API/SarAtSearch/0' method='post'>
        <!-- credenziali -->
        <input name='username' type='hidden' value='luca@accomazzi.net' />
        <input name='password' type='hidden' value='tvumdb' />
        <input name='group' type='hidden' value='registrati' />
        <!-- dove cercare -->
        <input name='table' type='hidden' value='IS_UTE' />
        <!-- cosa cercare -->
        <input name='AUCCLI' type='hidden' value='192956' />
   
        <!-- solo per la demo -->
        <input type='submit' value='Invia richiesta di ricerca' />
  </form>
  </body>
  </html>

Equivalente cURL:

  curl 'https://test.mygelsia.it/API/SarAtSearch/0' --data 'username=luca%40accomazzi.net&password=tvumdb&group=registrati&table=IS_UTE&AUCCLI=192956'

La app a questo punto può eseguire un ciclo sugli id così ottenuti e ricevere di conseguenza tutte le informazioni sulle utenze del cliente (per esempio, casa e ufficio). Seguirà un'altra ricerca sulla tabella IS_FOR alla ricerca di ciascuna fornitura in capo alle utenze (per esempio, gas e luce di casa).