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