Welington Pereira
Desenvolvedor Full Stack & Consultor
Especialista em linguagens de programação e banco de dados. Compartilhando dicas de programação práticas, tutoriais e soluções para o dia a dia do desenvolvedor.
Desenvolvedor Full Stack & Consultor
Especialista em linguagens de programação e banco de dados. Compartilhando dicas de programação práticas, tutoriais e soluções para o dia a dia do desenvolvedor.
Para criar uma API em PHP que permita realizar operações de INSERT, UPDATE, DELETE e SELECT em um banco de dados, podemos usar uma combinação de PHP, PDO (PHP Data Objects) e JSON para comunicação com o cliente. Vou te mostrar um exemplo simples de como fazer isso.
: Arquivo de configuração para conexão com o banco de dados.
: Arquivo que lida com as requisições da API.
.htaccess: (Opcional) Para redirecionar todas as requisições para api.php.
<?php
$host = 'localhost';
$db = 'nome_do_banco';
$user = 'usuario';
$pass = 'senha';
try {
$pdo = new PDO("mysql:host=$host;dbname=$db", $user, $pass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("Erro na conexão: " . $e->getMessage());
}
?>
<?php
header('Content-Type: application/json');
require 'config.php';
$method = $_SERVER['REQUEST_METHOD'];
switch ($method) {
case 'GET':
handleGet($pdo);
break;
case 'POST':
handlePost($pdo);
break;
case 'PUT':
handlePut($pdo);
break;
case 'DELETE':
handleDelete($pdo);
break;
default:
echo json_encode(['message' => 'Método não suportado']);
break;
}
function handleGet($pdo) {
$stmt = $pdo->prepare("SELECT * FROM tabela");
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($result);
}
function handlePost($pdo) {
$data = json_decode(file_get_contents('php://input'), true);
$stmt = $pdo->prepare("INSERT INTO tabela (coluna1, coluna2) VALUES (:valor1, :valor2)");
$stmt->execute(['valor1' => $data['valor1'], 'valor2' => $data['valor2']]);
echo json_encode(['message' => 'Registro inserido com sucesso']);
}
function handlePut($pdo) {
$data = json_decode(file_get_contents('php://input'), true);
$stmt = $pdo->prepare("UPDATE tabela SET coluna1 = :valor1 WHERE coluna2 = :valor2");
$stmt->execute(['valor1' => $data['valor1'], 'valor2' => $data['valor2']]);
echo json_encode(['message' => 'Registro atualizado com sucesso']);
}
function handleDelete($pdo) {
$data = json_decode(file_get_contents('php://input'), true);
$stmt = $pdo->prepare("DELETE FROM tabela WHERE coluna1 = :valor1");
$stmt->execute(['valor1' => $data['valor1']]);
echo json_encode(['message' => 'Registro deletado com sucesso']);
}
?>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ api.php [QSA,L]
Você pode usar ferramentas como Postman ou cURL para testar as requisições à API.
curl -X GET http://localhost/api.php
curl -X POST http://localhost/api.php -d '{"valor1": "exemplo1", "valor2": "exemplo2"}'
curl -X PUT http://localhost/api.php -d '{"valor1": "novo_valor", "valor2": "exemplo2"}'
curl -X DELETE http://localhost/api.php -d '{"valor1": "exemplo1"}'
Validação e Sanitização: Certifique-se de validar e sanitizar todas as entradas do usuário.
Autenticação e Autorização: Implemente autenticação (como tokens JWT) para garantir que apenas usuários autorizados possam acessar e manipular os dados.
Erro e Exceção: Trate erros e exceções adequadamente para evitar a exposição de informações sensíveis.
Esse é um exemplo básico para te ajudar a começar. Dependendo das necessidades específicas do seu projeto, você pode expandir e aprimorar a API com funcionalidades adicionais e medidas de segurança.
OBSERVAÇÕES IMPORTANTES:
Vale lembrar que os exemplos citados acima, são utilizadas apenas para uso didático. Cada desenvolvedor deve ser responsável em aplicar medidas de segurança para evitar ataques de injeção de SQL ou de outro tipo em seu sistema. Também em implementar autenticação JWT ou outros recursos.
Nenhum comentário:
Postar um comentário