
Un'API (Application Program Interface) è un insieme di definizioni e protocolli che consentono ai programmi software di comunicare tra loro.
Il termine REST sta per trasferimento di stato rappresentativo. È uno stile architettonico che consiste in un insieme di vincoli da utilizzare durante la creazione di servizi web.
L'API RESTful è un'API che segue l'architettura REST. In genere le API REST utilizzano il protocollo HTTP per l'invio e il recupero di dati e risposte in formato JSON. Puoi utilizzare i metodi HTTP standard per creare, visualizzare, aggiornare o eliminare risorse tramite l'API.
Per testare e interagire con le API RESTful, puoi utilizzare qualsiasi libreria o strumento in grado di effettuare richieste HTTP.
Le richieste API sono composte da quattro parti diverse:
- L'endpoint. Questo è l'URL che il client utilizza per comunicare con il server.
- Il metodo HTTP. Dice al server quale azione il client vuole eseguire. I metodi più comuni sono
GET
POST
PUT
DELETE
ePATCH
- Le intestazioni. Utilizzato per trasferire informazioni aggiuntive tra il server e il client, come l'autorizzazione.
- Il corpo. I dati inviati al server.
In questo articolo parleremo di come usare curl
per interagire con le API RESTful. curl
è un'utilità della riga di comando per il trasferimento di dati da o verso un server remoto. È installato per impostazione predefinita su macOS e sulla maggior parte delle distribuzioni Linux.
Opzioni arricciatura #
La sintassi per il curl
il comando è il seguente:
curl [options] [URL...]
Ecco le opzioni che utilizzeremo quando effettueremo richieste:
-X
,--request
- Il metodo HTTP da utilizzare.-i
,--include
- Includi le intestazioni delle risposte.-d
,--data
- I dati da inviare.-H
,--header
- Intestazione aggiuntiva da inviare.
HTTP GET #
Il metodo GET richiede una specifica risorsa dal server.
GET è il metodo predefinito quando si effettuano richieste HTTP con curl
. Ecco un esempio di richiesta GET alla JSONPlaceholderAPI per una rappresentazione JSON di tutti i post:
curl https://jsonplaceholder.typicode.com/posts
Per filtrare i risultati usa i parametri della query:
curl https://jsonplaceholder.typicode.com/posts?userId=1
POST HTTP #
Il metodo POST viene utilizzato per creare una risorsa sul server. Se la risorsa esiste, viene sovrascritta.
Il comando seguente effettua una richiesta POST utilizzando i dati specificati con -d
opzione:
curl -X POST -d "userId=5&title=Hello World&body=Post body." https://jsonplaceholder.typicode.com/posts
Il tipo del corpo della richiesta viene specificato utilizzando Content-Type
intestazione. Per impostazione predefinita, quando a questa intestazione non viene assegnato curl
utilizza Content-Type: application/x-www-form-urlencoded
.
Per inviare un dato in formato JSON, imposta il tipo di corpo su application/json
:
curl -X POST -H "Content-Type: application/json" \
-d '{"userId": 5, "title": "Hello World", "body": "Post body."}' \
https://jsonplaceholder.typicode.com/posts
HTTP PUT #
Il metodo PUT viene utilizzato per aggiornare o sostituire una risorsa sul server. Sostituisce tutti i dati della risorsa specificata con i dati della richiesta.
curl -X PUT -d "userId=5&title=Hello World&body=Post body." https://jsonplaceholder.typicode.com/posts/5
PATCH HTTP #
Il metodo PUT viene utilizzato per effettuare aggiornamenti parziali alla risorsa sul server.
curl -X PUT -d "title=Hello Universe" https://jsonplaceholder.typicode.com/posts/5
ELIMINA HTTP #
Il metodo DELETE rimuove la risorsa specificata dal server.
curl -X DELETE https://jsonplaceholder.typicode.com/posts/5
Autenticazione #
Se l'endpoint API richiede l'autenticazione, dovrai ottenere una chiave di accesso. In caso contrario, il server API risponderà con il messaggio di risposta "Accesso vietato" o "Non autorizzato".
Il processo per ottenere una chiave di accesso dipende dall'API che stai utilizzando. Una volta ottenuto il token di accesso, puoi inviarlo nell'intestazione:
curl -X GET -H "Authorization: Bearer {ACCESS_TOKEN}" "https://api.server.io/posts"
Conclusione #
Ti abbiamo mostrato come usare curl
per effettuare richieste API di prova. Per ulteriori informazioni su curl
, visita la pagina della documentazione sui ricci.
Se hai domande o feedback, sentiti libero di lasciare un commento.