-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.php
More file actions
83 lines (67 loc) · 2.68 KB
/
Copy pathindex.php
File metadata and controls
83 lines (67 loc) · 2.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<?php
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;
use Slim\Factory\AppFactory;
require __DIR__ . '/vendor/autoload.php';
require __DIR__ . '/src/login.php';
require __DIR__ . '/src/usuarios.php';
$app = AppFactory::create();
// Configuração do base path para funcionar em subdiretório
$app->setBasePath('/API-EngSoft');
// Adiciona middleware para parsing do corpo da requisição
$app->addBodyParsingMiddleware();
// Adiciona middleware para tratamento de CORS
$app->add(function (Request $request, \Psr\Http\Server\RequestHandlerInterface $handler) {
$response = $handler->handle($request);
return $response
->withHeader('Access-Control-Allow-Origin', '*')
->withHeader('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type, Accept, Origin, Authorization')
->withHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, PATCH, OPTIONS');
});
$host = 'localhost';
$dbname = 'api_eng_soft';
$username = 'root';
$password = '';
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("Erro na conexão: " . $e->getMessage());
}
// Rotas da API
$app->get('/', function (Request $request, Response $response, $args) {
$data = [
'message' => 'API de Sistema de Estoque',
'endpoints' => [
'GET /' => 'Menu da API',
'POST /login' => 'Login do usuario',
'GET /usuarios' => 'Listar usuarios',
'GET /usuarios/{id}' => 'Buscar usuario por ID',
'POST /usuarios' => 'Adicionar novo usuario',
'PUT /usuarios/{id}' => 'Atualizar usuario',
'DELETE /usuarios/{id}' => 'Remover usuario'
],
'formato_usuarios' => [
'user' => 'string (obrigatório)',
'email' => 'string (obrigatório)',
'senha' => 'string (obrigatório)'
]
];
$response->getBody()->write(json_encode($data, JSON_PRETTY_PRINT));
return $response->withHeader('Content-Type', 'application/json');
});
// Rota de Login
$app->post('/login', 'loginHandler');
// Rota de listar todos os usuários
$app->get('/usuarios', 'listarUsuarios');
// Rota de listar usuário por ID
$app->get('/usuarios/{id}', 'ListarPorId');
// Rota de adicionar novo usuário
$app->post('/usuarios', 'adicionarUsuario');
//Rota para atualizar usuário
$app->put('/usuario/{id}', 'atualizarUsuario');
// Rota para deletar usuário
$app->delete('/usuario/{id}', 'deletarUsuario');
// Tratamento de erros
$errorMiddleware = $app->addErrorMiddleware(true, true, true);
$app->run();