Hai bisogno di testare la tua API inviando dati JSON da un file? Ecco i comandi di arricciatura.
INVIA file JSON su Localhost
curl -X POST http://localhost:8080/api/endpoint \
-H "Content-Type: application/json" \
-d @data.json
Sostituisci:
8080con il vostro porto/api/endpointcon il percorso APIdata.jsoncon il percorso del file JSON
Il @ dice a curl di leggere dal file.
Simbolo
INSERIRE il file JSON
curl -X PUT http://localhost:8080/api/endpoint \
-H "Content-Type: application/json" \
-d @data.json
Come POST, usando solo il metodo PUT.
Versione con una riga
curl -X POST http://localhost:8080/api/endpoint -H "Content-Type: application/json" -d @data.json
Tutto su una riga.
Mostra intestazioni di risposta
curl -X POST http://localhost:8080/api/endpoint \
-H "Content-Type: application/json" \
-d @data.json \
-i
-i include le intestazioni di risposta nell'output.
Output dettagliato (debug)
curl -X POST http://localhost:8080/api/endpoint \
-H "Content-Type: application/json" \
-d @data.json \
-v
-v mostra i dettagli completi della richiesta e della risposta.
Con autenticazione
Autenticazione di base:
curl -X POST http://localhost:8080/api/endpoint \
-H "Content-Type: application/json" \
-u username:password \
-d @data.json
Gettone portatore:
curl -X POST http://localhost:8080/api/endpoint \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your-token-here" \
-d @data.json
Chiave API:
curl -X POST http://localhost:8080/api/endpoint \
-H "Content-Type: application/json" \
-H "X-API-Key: your-api-key" \
-d @data.json
Invia JSON in linea (nessun file)
curl -X POST http://localhost:8080/api/endpoint \
-H "Content-Type: application/json" \
-d '{"key":"value","number":123}'
Le virgolette singole impediscono l'interpretazione della shell.
File in una directory diversa
curl -X POST http://localhost:8080/api/endpoint \
-H "Content-Type: application/json" \
-d @/path/to/data.json
Utilizza il percorso assoluto o relativo.
Salva risposta su file
curl -X POST http://localhost:8080/api/endpoint \
-H "Content-Type: application/json" \
-d @data.json \
-o response.json
Risposta salvata in response.json.
Porte host locali comuni
- 3000: Node.js, server di sviluppo React
- 8000: Server HTTP Python, Django
- 8080: Java comune, sviluppo generale
- 5000: Impostazione predefinita della boccetta
- 4200: Server di sviluppo angolare
- 3001: Node.js alternativo
Risoluzione dei problemi
Errore "Impossibile connettersi":
- API non in esecuzione
- Numero di porta errato
- Controlla
http://controhttps://
Errore "curl: nessun file simile":
- Il file JSON non esiste
- Percorso file errato
- Controlla la directory corrente con
pwd
Risposta inaspettata:
- Controlla la sintassi JSON con
cat data.json - Convalida JSON su jsonlint.com
- Utilizzare
-vflag per vedere la richiesta completa
Esempio di file JSON
Crea data.json:
{
"name": "Test User",
"email": "test@example.com",
"active": true,
"roles": ["admin", "user"]
}
Quindi esegui:
curl -X POST http://localhost:8080/users -H "Content-Type: application/json" -d @data.json
Conclusione
Comando POST di base:
curl -X POST http://localhost:8080/api/endpoint -H "Content-Type: application/json" -d @data.json
Il @ viene letto dal file. Cambia POST in PUT per le richieste PUT. Aggiungi
Il simbolo -v per il debug. Aggiungi -i per le intestazioni di risposta.
Funziona con qualsiasi API localhost durante lo sviluppo.