REST API: cosa sono, come funzionano e come progettarle

04 Nov 2019 | M.A.D.R.

Probabilmente avrai già sentito parlare di Web Service e di API e tutto ciò tipicamente coniugato con l’acronimo REST.

L’argomento è articolato, per approfondimenti consiglio di leggere l'articolo PHP e i Servizi Rest con Slim Framework

Web service ed API REST

I Web Service o servizi web sono delle funzionalità esposte da un server che permettono di essere invocate da programmi esterni via rete e a seguito di elaborazione restituiscono un risultato.

Di che tipo di funzionalità si tratta?

Ogni server gestisce un certo insieme di informazioni, a seconda del motivo per cui è stato creato.

Potranno essere così pubblicate funzionalità che metteranno a disposizione di applicazioni esterne solo i dati che si vorranno condividere, tutto ciò fattibile praticamente con qualsiasi tecnologia (tra le più comuni per Web Service.

Di che tipo sono i programmi esterni che accedono ai Web Service?

Per lo più, al giorno d’oggi, web app (pagine web che grazie a e altre tecnologie Javascript interagiscono con servizi web) e applicazioni mobile come app o app . Oltre a ciò può trattarsi di qualsiasi programma informatico con o senza interfaccia utente.

Come si dialoga attraverso le reti?

Affinchè un server che offre i servizi web ed un client (web app, app mobile o qualsiasi altro programma) possano dialogare ci deve essere reciproco accordo sul protocollo di comunicazione da utilizzare e sui formati dei dati.

Per quanto riguarda il primo, i servizi web si poggiano su quello che è il vettore principale della Rete ossia HTTP, il protocollo su cui tutto il sistema WWW si basa e che ha visto negli ultimi anni anche la nascita della sua versione evoluta, . I formati di comunicazione sono per lo più XML e soprattutto JSON, ormai diffusissimo in ogni tipo di impiego pratico.

LEGGI: PHP e i Servizi Rest con Slim FRAMEWORK

Progettare API REST

Come tante buone idee, REST è nato in un contesto accademico.

Con REST, vengono identificate delle risorse, ossia degli aggregati di informazioni che il servizio web offre. Se ad esempio parliamo di un e-commerce che vuole rendere pubblici i prodotti in vendita e i relativi prezzi potremmo individuare come risorse il singolo prodotto, una lista di prodotti selezionati, etc. Tali risorse vengono condivise in Rete mediante protocollo HTTP e proprio qui sta l’idea geniale alla base di REST: al suo interno HTTP possiede già tutto ciò di cui uno scambio di informazioni necessita pertanto non c’è bisogno di creare alcuna ulteriore sovrastruttura. Sfruttando gli elementi interni a questo protocollo potremo instaurare un dialogo tra il client ed il server.

Il protocollo HTTP funziona mediante un modello richiesta/risposta.

Ecco alcuni dei codici di stato più utilizzati accompagnati ognuno dal messaggio testuale ufficiale:

  • 200 “OK”;
  • 201 “Created”;
  • 400 “Bad Request”;
  • 401 “Unauthorized”;
  • 403 “Forbidden”;
  • 404 “Not found”;
  • 500 “Internal server error”;
  • 501 “Not implemented”.

Ormai i concetti sono stati chiariti e tutto è pronto: non ti resta che approfondire con Slim Framework

Soluzioni complete per ogni esigenza