Porque literalmente esse projeto é um clone de API Veículos 1 - Mão na Massa 1
"AAAAARRRRGGGHHHH WRRHWRWWHW HUURH!" — Chewbacca 👹
🔴 🟩🟩 __/\\\\\\\\\\\___/\\\\\\\\\\\\\\\_____/\\\\\\\\\\\__________/\\\\\\\\\_
🟩 🟩 _\/////\\\///___\/\\\///////////____/\\\/////////\\\_____/\\\////////__
🟩 🟩🟩 _____\/\\\______\/\\\______________\//\\\______\///____/\\\/___________
🟩 🟩 _____\/\\\______\/\\\\\\\\\\\_______\////\\\__________/\\\_____________
_____\/\\\______\/\\\///////___________\////\\\______\/\\\_____________
_____\/\\\______\/\\\_____________________\////\\\___\//\\\____________
____\/\\\______\/\\\______________/\\\______\//\\\___\///\\\__________
__/\\\\\\\\\\\_\/\\\_____________\///\\\\\\\\\\\/______\////\\\\\\\\\_
_\///////////__\///________________\///////////___________\/////////__
Evolução direta do api-veiculos1. Se você precisa do passo a passo completo, diagramas e prints detalhados, consulte o projeto original. Aqui vamos direto ao que importa.
-
Clone e abra com Codespace
Code ▾→Codespaces +). -
Aguarde a tarefa
🚀 Startup API -
Abra o terminal Bash e execute:
./populate-data.sh # inserir dados com credenciais no H2 ./test-api.sh # testar interações CRUD POST/GET/PUT/DELETE
🔎 Se quiser acessar o terminal H2, acesse a sua URL:
> ✅ Correto: https ://nome-aletorio-123457890-8080.app.github.dev/h2-console ✅ (sem :8080 injetado)
> ❌ Errado: https ://nome-aletorio-1234567890-8080.app.github.dev:8080/h2-console ❌ (com :8080 injetado)
(JDBC jdbc:h2:mem:apiveiculos2).
NetBeans, Sublime ou VS-Code local + terminal (Windows, macOS, Linux):
- Requisitos: JDK 17+
- Clone o projeto, descompacte e execute:
./mvnw clean package -DskipTests # compilar a build Maven
./mvnw spring-boot:run # executar o server APICompilou? Rode isso:
./populate-data.sh # insere dados de exemplo já com credenciais
./test-api.sh # testar interações CRUD POST/GET/PUT/DELETEOpcional: Experimente rodar ./startup.sh pra compilar e rodar o server da API na sequência.
Clique para abrir o manual
⚠️ A API agora tem porteiro. Sem credenciais, nada feito.
-
Credenciais padrão:
admin/admin123(criados noSecurityConfig). -
Export no shell atual (garante que
curlenxergue as variáveis):export AUTH_USER=admin export AUTH_PASS=admin123
-
Modo clássico –
curl -s -u "$AUTH_USER:$AUTH_PASS" http://localhost:8080/marcas -
Modo filme dos anos 90 –
curl -s "http://$AUTH_USER:$AUTH_PASS@localhost:8080/marcas" -
Modo cientista –
curl -s -H "Authorization: Basic $(printf '%s' "$AUTH_USER:$AUTH_PASS" | base64)" http://localhost:8080/marcas -
Modo ninja –
curl -s -u "$AUTH_USER:$AUTH_PASS" http://localhost:8080/marcas --show-error --fail
Quer deixar o terminal apresentável sem virar roteirista de shell?
- Tem Python? roda isso aqui:
Não tem? Instala rapidinho ➡️ https://www.python.org/downloads/
curl -s -u "$AUTH_USER:$AUTH_PASS" http://localhost:8080/marcas | python -m json.tool
- Quer JSON colorido?
Precisa do
curl -s -u "$AUTH_USER:$AUTH_PASS" http://localhost:8080/marcas | jq '.'
jq: https://stedolan.github.io/jq/download/ - Só os nomes, por favor:
curl -s -u "$AUTH_USER:$AUTH_PASS" http://localhost:8080/marcas | jq -r '.[].nome'
- Json bonito em modo scroll:
(pressione
curl -s -u "$AUTH_USER:$AUTH_PASS" http://localhost:8080/marcas | jq '.' | less -R
qpara sair)
Use qualquer uma antes/ao invés dos scripts populate-data.sh ou test-api.sh para entender o fluxo manualmente.
- Instruções de Execução (Api-veiculos1) - Guia passo a passo para executar o projeto
- Repositório GitHub (Api-veiculos1 ) - Código fonte completo
Este projeto está licenciado sob a Licença MIT.
- 2025 ©️ - Andre Riffen | @andreriffen (Github)