API Rest: cosa sono e perché usarle

Princìpi e vantaggi del loro utilizzo



Quando si lavora o ci si appresta a entrare nel mondo digitale, molti sono i nomi inglesi di programmi o linguaggi e ancora di più sono gli acronimi. Se vuoi muoverti in questo universo con grande professionalità e senza troppi dubbi, devi conoscerne il maggior numero possibile.

In questo articolo tratteremo l’API Rest e cercheremo di capire la sua importanza.

Cos’è il REST?

Quando si parla di REST (Representational State Transfer) ci si riferisce a un’architettura software, un termine introdotto per la prima volta nel 2000 all’interno di una tesi per il dottorato di Roy Fielding. Questo approccio architetturale venne ideato per creare web API basandosi sul protocollo HTTP.

Il REST è infatti un sistema di trasmissione dei dati grazie che utilizza l’HTTP e che fa un grande uso delle funzioni di HTTP, ricorrendo ai comandi GET, POST, PUT, PATCH, DELETE e OPTIONS: grazie a questi si riesce ad identificare ben precise risorse presenti in tutto il vasto web.

Sebbene REST faccia un enorme uso dell’HTTP, è bene non credere che sia il solo e unico protocollo di trasferimento dati utilizzabile da questa architettura: di certo è quello più sfruttato e famoso, ma REST funziona alla perfezione anche con altri protocolli come SNMP o SMTP.

I princìpi del REST

Il REST si declina in una serie di vincoli e principi stabiliti dallo stesso Roy Fielding:

Client-server: in questo caso si parla di separazione delle preoccupazioni o compiti (SoC) per indicare che il client e il server hanno compiti tra loro ben definiti e dedicati. Ognuno di loro si occupa di ben determinati aspetti e funzionalità, evitando così qualsiasi accavallamento di competenze;

Stateless: questo principio si basa sull’assenza di stato durante la comunicazione tra server e client. Quando il client invia una richiesta al server, essa deve contenere tutte le informazioni necessarie affinché questa venga evasa correttamente. La richiesta non dovrà mai mancare di dati supponendo che questi siano già presenti nel server di riferimento: ogni sessione client-server è unica, mai correlata alle precedenti o a quelle future;

Cacheable: sai di certo cosa si intenda per cache. Il medesimo principio viene utilizzato anche dall’architettura REST. In questo caso, però, le risposte date dal server devono essere esplicitamente etichettate come memorizzabili nella cache o meno: in questo modo si evita che venga salvata ogni singola risposta e che i client usino stati vecchi o addirittura errati. Una buona gestione della cache, inoltre, aiuta anche a migliorare le prestazioni;

Layered system: REST è un sistema basato su livelli composti da server intermedi che garantiscono politiche di sicurezza, migliorando anche la scalabilità del sistema con load balancing o cache distribuite;

Uniform interface: interfaccia dei server e dei client è uniforme e omogenea, facile da utilizzare e perfetta se si vuole semplificare l’architettura;

Code on demand: questo è l’unico “vincolo facoltativo”. Il code on demand consente di aggiornare la logica dei client senza dover aggiornare obbligatoriamente anche quella dei server.

Comprendere in pieno l’architettura REST consente di approcciarsi nel migliore dei modi all’API Rest.

API Rest: perché usarle?

Con il termine API (Application Programming Interface) si intendono un insieme di procedure volte a portare a termine un ben preciso e determinato compito. Basti pensare che una singola app può utilizzare anche 15-20 API contemporaneamente per espletare il suo compito.

Una prima cosa da chiarire è che REST e RESTful non sono la stessa cosa: REST come abbiamo visto è un’architettura, mentre RESTful, come le RESTful API, è tutto ciò che viene costruito e programmato seguendo alla lettera i principi del REST.

L’API REST, quindi, non è altro che un’API che segue i principi REST e che per funzionare ricorre ai comandi dell’HTTP, ovvero GET, POST, PUT e DELETE.

I vantaggi dell’utilizzo delle API Rest

Numerosi sono i vantaggi derivanti dal loro utilizzo, sia su un sito WordPress o su un e-commerce. Eccone alcuni:

Indipendenza: le API Rest sono indipendenti dai linguaggi o da precise piattaforme. Si sanno adattare sempre e in ogni occasione, garantendoti quindi la massima libertà. Puoi avere un server PHP, Java, Python o Node.js senza riscontrare alcun problema.

Separazione client-server: non è solo uno dei principi fondamentali del REST, ma rappresenta un vero e proprio vantaggio. Grazie a tale separazione, infatti, consente di trattare indipendentemente l’evoluzione delle diverse componenti, modificare solo una parte progettuale senza, per questo, essere obbligati a mettere mano sia al server che al client. L’interfaccia utilizzata, inoltre, è utilizzabile su diverse tipologie di piattaforme.

Scalabilità: la separazione client-server si traduce in una miglior scalabilità del sistema stesso.

Quando si parla di API Rest presta sempre molta attenzione ai principi su cui si basano: troppo spesso capita che le API vengano battezzate RESTful, nonostante non rispettino nessun vincolo precedentemente descritto.

Prenota un appuntamento