Precisa testar sua API enviando dados JSON de um arquivo? Aqui estão os comandos curl.
POST arquivo JSON para localhost
curl -X POST http://localhost:8080/api/endpoint \
-H "Content-Type: application/json" \
-d @data.json
Substituir:
8080com seu porto/api/endpointcom seu caminho de APIdata.jsoncom o caminho do arquivo JSON
O @ diz ao curl para ler o arquivo.
Símbolo
COLOCAR arquivo JSON
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
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
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)
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:
curl -X POST http://localhost:8080/api/endpoint \
-H "Content-Type: application/json" \
-u username:password \
-d @data.json
Token do Portador:
curl -X POST http://localhost:8080/api/endpoint \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your-token-here" \
-d @data.json
Chave API:
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)
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
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
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://versushttps://
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
-vsinalizador para ver a solicitação completa
Exemplo de arquivo JSON
Criar data.json:
{
"name": "Test User",
"email": "test@example.com",
"active": true,
"roles": ["admin", "user"]
}
Em seguida, execute:
curl -X POST http://localhost:8080/users -H "Content-Type: application/json" -d @data.json
Conclusão
Comando POST básico:
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.