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.
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”.