Precisa testar sua API enviando dados JSON de um arquivo? Aqui estão os comandos curl.

POST arquivo JSON para localhost

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

Substituir:

  • 8080 com seu porto
  • /api/endpoint com seu caminho de API
  • data.json com o caminho do arquivo JSON

O @ diz ao curl para ler o arquivo. Símbolo

COLOCAR arquivo JSON

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

Igual ao POST, apenas usando o método PUT.

Versão One-Liner

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

Tudo em uma linha.

Mostrar cabeçalhos de resposta

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

-i inclui cabeçalhos de resposta na saída.

Saída detalhada (depuração)

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

-v mostra detalhes completos da solicitação e resposta.

Com autenticação

Autenticação Básica:

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

Token do Portador:

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

Chave 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

Enviar JSON embutido (sem arquivo)

Comando
curl -X POST http://localhost:8080/api/endpoint \
  -H "Content-Type: application/json" \
  -d '{"key":"value","number":123}'

Aspas simples impedem a interpretação do shell.

Arquivo em diretório diferente

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

Use caminho absoluto ou relativo.

Salvar resposta no arquivo

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

Resposta salva em response.json.

Portas locais comuns

  • 3000: Node.js, servidores de desenvolvimento React
  • 8000: Servidor HTTP Python, Django
  • 8080: Java comum, desenvolvimento geral
  • 5000: Frasco padrão
  • 4200: Servidor de desenvolvimento angular
  • 3001: Node.js alternativo

Solução de problemas

Erro "Falha ao conectar":

  • API não está em execução
  • Número de porta errado
  • Verificar http:// versus https://

Erro "curl: esse arquivo não existe":

  • Arquivo JSON não existe
  • Caminho de arquivo errado
  • Verifique o diretório atual com pwd

Resposta inesperada:

  • Verifique a sintaxe JSON com cat data.json
  • Valide JSON em jsonlint.com
  • Usar -v sinalizador para ver a solicitação completa

Exemplo de arquivo JSON

Criar data.json:

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

Em seguida, execute:

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

Conclusão

Comando POST básico:

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

O @ símbolo lê do arquivo. Altere POST para PUT para solicitações PUT. Adicionar O símbolo -v para depuração. Adicionar -i para cabeçalhos de resposta.

Funciona com qualquer API localhost durante o desenvolvimento.