Referência v3
Voltar à plataforma

Filosofia do Projeto

Por que a Vupi.us API foi construída assim — e o que isso significa para você como desenvolvedor.

O objetivo

A Vupi.us API foi criada com um único objetivo central:

O desenvolvedor só precisa se preocupar com a regra de negócio.

Toda a infraestrutura — autenticação, banco de dados, rotas, segurança, migrations, CORS, TLS — já está resolvida pelo Kernel. Você cria uma pasta em src/Modules/ e o sistema cuida do resto.

O que o Kernel já resolve por você

Rotas automáticas

Crie Routes/web.php no seu módulo. O sistema descobre e registra as rotas automaticamente — sem tocar em index.php.

Migrations automáticas

Coloque arquivos PHP em Database/Migrations/. O Migrator os descobre e executa com php vupi migrate.

Injeção de dependência

Declare dependências no construtor. O Container resolve tudo automaticamente via reflection — sem registro manual.

Autenticação pronta

Use AuthHybridMiddleware e AdminOnlyMiddleware nas rotas. JWT, blacklist e validação já estão implementados.

Segurança por padrão

O Kernel oferece CSP, HSTS, rate limiting, circuit breaker e componentes de auditoria. O módulo precisa selecionar os middlewares adequados e implementar validação e autorização próprias.

Zero config

Sem registro em arquivos centrais. Sem editar index.php ou composer.json. Só criar a pasta do módulo.

O que você faz como desenvolvedor

Sua responsabilidade se resume a três coisas:

1

Modelar o domínio

Criar a Entity com as regras de negócio, validações e comportamentos. Ex: Aviso.php, Produto.php, Pedido.php.

2

Persistir os dados

Criar o Repository com as queries SQL. O PDO é injetado automaticamente via ModuleConnectionResolver.

3

Expor via HTTP

Criar o Controller com os endpoints e o Routes/web.php com as rotas. Pronto — a API está no ar.

Estrutura mínima de um módulo

src/Modules/SeuModulo/ ├── Controllers/ │ └── SeuController.php # Endpoints HTTP ├── Entities/ │ └── SuaEntity.php # Regras de negócio ├── Repositories/ │ └── SeuRepository.php # Queries SQL ├── Database/ │ ├── Migrations/ │ │ └── 001_create_tabela.php # Cria a tabela │ ├── Seeders/ │ │ └── 001_dados.php # Dados iniciais (opcional) │ └── connection.php # Qual banco usar └── Routes/ └── web.php # ⚠ Obrigatório para ter rotas
Nenhum arquivo fora de src/Modules/ precisa ser alterado.

O sistema detecta o módulo automaticamente. Não é necessário editar index.php, composer.json, rotas do Kernel ou qualquer outro arquivo de infraestrutura.

Exemplos práticos

As próximas seções mostram dois módulos completos construídos do zero, com cada linha de código explicada:

MóduloO que fazComplexidade
UsuarioRegistro, autenticação, perfil e gerenciamento de usuáriosCompleto com UUID, hash de senha e níveis de acesso
AvisoCRUD de avisos/notificações com rotas públicas e adminSimples — ideal para começar