API REST de produtos escrita em PHP puro (sem framework), usando PDO + SQLite e prepared statements (proteção contra SQL Injection).
- 🔀 Roteamento próprio (sem framework) com
preg_match - 🔒 Prepared statements em todas as consultas — seguro contra SQL Injection
- 🗄️ PDO + SQLite: não precisa de servidor de banco (o banco é um arquivo)
- 🔢 Códigos HTTP corretos (
200,201,204,400,404,405) - ✅ Validação de entrada com mensagens de erro claras
- 📦 Camada de dados separada (
db.php) da camada de rotas (index.php)
Requer PHP 8+ (como instalar).
git clone https://github.com/IasminRDS/api-produtos-php.gitPopular o banco com dados de exemplo (opcional):
php seed.phpSubir o servidor embutido do PHP:
php -S localhost:8000 index.phpA API fica em http://localhost:8000.
| Método | Rota | Descrição | Status |
|---|---|---|---|
GET |
/produtos |
Lista todos | 200 |
GET |
/produtos/{id} |
Retorna um | 200 / 404 |
POST |
/produtos |
Cria | 201 / 400 |
PUT |
/produtos/{id} |
Atualiza | 200 / 404 |
DELETE |
/produtos/{id} |
Remove | 204 / 404 |
Criar:
curl -X POST http://localhost:8000/produtos -H "Content-Type: application/json" -d '{"nome": "Notebook", "preco": 3500, "estoque": 10}'Listar:
curl http://localhost:8000/produtosAtualizar:
curl -X PUT http://localhost:8000/produtos/1 -H "Content-Type: application/json" -d '{"nome": "Notebook Pro", "preco": 4200, "estoque": 8}'Remover:
curl -X DELETE http://localhost:8000/produtos/1api-produtos-php/
├── index.php # front controller: roteamento + endpoints
├── db.php # conexão PDO + criação da tabela
├── seed.php # popula dados de exemplo
└── README.md
- Arquitetura REST e semântica de métodos HTTP em PHP
- Segurança: prepared statements contra SQL Injection
- PDO como camada de acesso a dados
- Roteamento manual (front controller)
MIT — veja LICENSE.