API RESTful em PHP para gestão de livraria, com autenticação JWT e controle de acesso baseado em papéis/permissões (RBAC).
- Autenticação de usuário → emissão de token JWT.
- Verificação de token nas requisições para endpoints protegidos.
- Papéis (roles) e permissões associadas.
- Endpoints CRUD para entidades como Livros, Usuários, etc.
├── config/ → arquivos de configuração (ex: chave JWT, credenciais BD, definições de roles/permissões) ├── controller/ → lógica dos endpoints / controladores ├── entities/ → modelos / entidades de dados ├── models/ → acesso e manipulação de dados no banco ├── util/ → funções utilitárias (JWT, verificação de permissão, etc.) ├── index.php → ponto de entrada da API ├── testRole.php → script para testar roles / permissões ├── bookstore.sql → script SQL para criar base e tabelas iniciais └── README.md → documentação do projeto
- PHP >= 7.4 (ou versão que o projeto suporte)
- Extensões PHP:
pdo
(mais driver do SGBD, ex:pdo_mysql
),openssl
ou similar para JWT - Composer (se estiver usando pacotes externos)
- Servidor web local ou uso do servidor embutido do PHP
git clone https://github.com/CodeShark37/PHP-Library-API.git cd PHP-Library-API
composer install
-
Definir chave secreta JWT no(s) arquivo(s) de configuração
-
Ajustar credenciais do banco de dados (host, usuário, senha, nome do DB)
-
Definir roles/permissões iniciais
-
Possivelmente configurar tempo de expiração do token JWT
-
Fazer login → receber token JWT
-
Enviar requisições protegidas incluindo no cabeçalho HTTP:
Authorization: Bearer <seu_token_jwt>
-
Executar testRole.php para validar funcionamento de roles / permissões
-
Usar Postman ou cURL para testar os endpoints:
curl -X POST http://localhost:8000/login \ -H "Content-Type: application/json" \ -d '{"username":"usuario","password":"senha"}'
Em seguida, usar o token para acessar outros endpoints protegidos.
-
Usar bookstore.sql para criar as tabelas iniciais necessárias
-
Garantir que as credenciais definidas na configuração batem com o ambiente local
-
Contribuições são bem-vindas! Siga:
-
Fazer fork
-
Criar branch para a feature ou correção (git checkout -b minha-feature)
-
Fazer commits descritivos
-
Abrir pull request explicando as mudanças
-
Testar antes de submeter