Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🛒 API REST de Produtos (PHP)

PHP SQLite License

API REST de produtos escrita em PHP puro (sem framework), usando PDO + SQLite e prepared statements (proteção contra SQL Injection).

✨ Destaques

  • 🔀 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)

🚀 Como executar

Requer PHP 8+ (como instalar).

git clone https://github.com/IasminRDS/api-produtos-php.git

Popular o banco com dados de exemplo (opcional):

php seed.php

Subir o servidor embutido do PHP:

php -S localhost:8000 index.php

A API fica em http://localhost:8000.

📡 Endpoints

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

💻 Exemplos (curl)

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/produtos

Atualizar:

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/1

📁 Estrutura

api-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

💡 Conceitos demonstrados

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

📄 Licença

MIT — veja LICENSE.


Feito por Iasmin Ribeiro de Souza · LinkedIn · GitHub

About

API REST de produtos escrita em PHP puro (sem framework), usando PDO + SQLite e prepared statements (proteção contra SQL Injection).

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages