Hai bisogno di testare la tua API inviando dati JSON da un file? Ecco i comandi di arricciatura.

INVIA file JSON su Localhost

Comando
curl -X POST http://localhost:8080/api/endpoint \
  -H "Content-Type: application/json" \
  -d @data.json

Sostituisci:

  • 8080 con il vostro porto
  • /api/endpoint con il percorso API
  • data.json con il percorso del file JSON

Il @ dice a curl di leggere dal file. Simbolo

INSERIRE il file JSON

Comando
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

Comando
curl -X POST http://localhost:8080/api/endpoint -H "Content-Type: application/json" -d @data.json

Tutto su una riga.

Mostra intestazioni di risposta

Comando
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)

Comando
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:

Comando
curl -X POST http://localhost:8080/api/endpoint \
  -H "Content-Type: application/json" \
  -u username:password \
  -d @data.json

Gettone portatore:

Comando
curl -X POST http://localhost:8080/api/endpoint \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer your-token-here" \
  -d @data.json

Chiave API:

Comando
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)

Comando
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

Comando
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

Comando
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:// contro https://

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 -v flag per vedere la richiesta completa

Esempio di file JSON

Crea data.json:

Comando
{
  "name": "Test User",
  "email": "test@example.com",
  "active": true,
  "roles": ["admin", "user"]
}

Quindi esegui:

Comando
curl -X POST http://localhost:8080/users -H "Content-Type: application/json" -d @data.json

Conclusione

Comando POST di base:

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