Che cos’è il RIPOSO?
Molti servizi accessibili pubblicamente espongono un’API REST che consente una vasta gamma di applicazioni, dalle interfacce utente Web all’integrazione e alla sincronizzazione del sistema back-end. Quindi cos’è esattamente REST e cosa rende un’API RESTful?,
REST – REpresentational State Transfer
Tecnicamente, REST sta per REpresentational State Transfer (quindi non è un acronimo perfetto) e significa essenzialmente che è un’architettura destinata a trasferire una rappresentazione di dati o stato del server tra un client e un server.
Esistono alcuni criteri dettagliati che sono considerati necessari affinché un’API sia RESTful, ma i più importanti sono che l’API sia:
- Stateless
Ciò significa che non è necessaria alcuna sessione tra un client e un server., I dati ricevuti dal server possono essere utilizzati dal client in modo indipendente. Ciò consente operazioni brevi e discrete e persino il caching offline dei dati. Ciò rende REST una misura naturale per le operazioni HTTP in cui le richieste sono destinate ad essere singolari e di breve durata.
- Uniform
Le API REST sono pensate per essere auto-descrittive, uniformi nella loro definizione e ciascuna operazione separata da un endpoint o URL diverso. In termini pratici, la maggior parte delle API REST implementa le classiche operazioni CRUD (Create, Read, Update, Delete) rispetto a un modello di dati., Questa uniformità consente agli sviluppatori di apprendere facilmente il modello di utilizzo di ciascuna API.
Quindi, che aspetto ha un’API REST?
Poiché è pensato per essere rappresentativo, iniziamo con il modello di dati che è destinato a rappresentare. Ad esempio, se abbiamo un’applicazione di commercio online, vorremmo definire le operazioni per la gestione dei prodotti nel nostro catalogo, incentrate sul modello del prodotto.
Ognuna di queste operazioni sarebbe collegata a una combinazione di un URL e un verbo HTTP., Per rivedere, ci sono molti verbi HTTP, ma la maggior parte dello sviluppo Web utilizza solo i verbi GET e POST per la richiesta di un URL o la pubblicazione di dati del modulo, rispettivamente. Ma REST utilizza più verbi HTTP per segnalare al server il tipo di operazione che il client sta eseguendo.
Il seguente è un elenco semplificato delle Url combinato con il verbo HTTP che dovremmo utilizzare per esporre le API per la gestione di un catalogo di Prodotto:
Le operazioni e gli Url di cui sopra sono solo le operazioni di base di un singolo modello., Le API REST possono anche supportare operazioni molto specifiche o operazioni gerarchiche. Per esempio, se si voleva mandare un segnale al server per riordinare una fornitura di prodotti, è possibile esporre un URL come questo:
/prodotti/{id}/riordinare | POST | Segnale al server che si desidera riordinare quantità di un prodotto, {id}. Il corpo del messaggio potrebbe essere vuoto o contenere un modello di dati utilizzato per istruzioni dettagliate sull’operazione di riordino., |
O, se si voleva tuffarsi in catalogo di prodotto e di eseguire una query per restituire un elenco di tutti gli ordini per un determinato prodotto, le API potrebbero esporre un’operazione di questo tipo:
/prodotti/{id}/ordini | GET | Dato un {id} per un prodotto, il ritorno di tutti gli ordini., |
al contrario, si potrebbe esporre un ordine-centric endpoint che permette di elencare tutti i prodotti nell’ordine:
/ordini/{id}/prodotti | GET | Dato un ordine {id} return tutti i prodotti in ordine. |
Come sono i dati del server?,
Sebbene non vi sia alcun requisito rigoroso per il tipo di dati che un’API REST utilizza o restituisce, è diventato uno standard de facto per le API REST basate sul Web utilizzare JSON come definizione dei dati.
Questo perché JSON è un formato nativo che tutti i browser moderni possono utilizzare per rappresentare oggetti gerarchici. Per ulteriori informazioni su JSON, leggere il nostro articolo Che cosa è JSON?
Per saperne di più sui nostri prodotti, contattare il proprio rappresentante di vendita OAS numero verde negli Stati Uniti su 1-800-533-4994 o per richieste internazionali chiamare 1-303-679-0898.