Sistema de API RESTful para controle interno organizacional, desenvolvido em C# com .NET 7 e Entity Framework Core.
- Políticas: Gerenciamento de políticas de controle interno
- Permissões: Controle de permissões de acesso
- Logs de Acesso: Registro de atividades dos usuários
- Trilhas de Auditoria: Rastreamento de mudanças no sistema
- .NET 7.0
- Entity Framework Core
- SQLite
- Minimal APIs (ASP.NET Core)
Trabalho-API/
├── Rotas/ # Rotas organizadas por tipo de operação HTTP
│ ├── GetRoutes.cs # Todas as rotas GET
│ ├── PostRoutes.cs # Todas as rotas POST
│ └── DeleteRoutes.cs # Todas as rotas DELETE
├── Models/ # Modelos de dados
│ ├── Politica.cs
│ ├── Permissao.cs
│ ├── LogAcesso.cs
│ └── TrilhaAuditoria.cs
├── Data/ # DbContext e configurações
│ ├── ControleInternoContext.cs
│ └── SeedData.cs
├── Program.cs # Configuração da aplicação
└── Auditoria.csproj # Arquivo de projeto
As rotas estão organizadas por tipo de operação HTTP em arquivos separados:
- GetRoutes.cs: Contém todas as rotas GET (listar e buscar por ID)
- PostRoutes.cs: Contém todas as rotas POST (criar novos registros)
- DeleteRoutes.cs: Contém todas as rotas DELETE (excluir registros)
-
Executar o projeto:
dotnet restore dotnet run --project Auditoria.csproj
-
Acessar a API:
- API Base:
http://localhost:5000/apiouhttps://localhost:5001/api - As rotas estão disponíveis conforme descrito na seção "Endpoints Disponíveis"
- API Base:
GET /api/politicas- Listar todas as políticasGET /api/politicas/{id}- Buscar política por IDPOST /api/politicas- Criar nova políticaDELETE /api/politicas/{id}- Excluir política
GET /api/permissoes- Listar todas as permissõesGET /api/permissoes/{id}- Buscar permissão por IDPOST /api/permissoes- Criar nova permissãoDELETE /api/permissoes/{id}- Excluir permissão
GET /api/logsacesso- Listar todos os logs (ordenados por data/hora decrescente)GET /api/logsacesso/{id}- Buscar log por IDPOST /api/logsacesso- Criar novo logDELETE /api/logsacesso/{id}- Excluir log
GET /api/trilhasauditoria- Listar todas as trilhas (ordenadas por data/hora decrescente)GET /api/trilhasauditoria/{id}- Buscar trilha por IDPOST /api/trilhasauditoria- Criar nova trilhaDELETE /api/trilhasauditoria/{id}- Excluir trilha
O sistema é automaticamente populado com dados de exemplo na primeira execução:
- 10 políticas de controle interno
- 10 tipos de permissões
- 50 logs de acesso
- 50 trilhas de auditoria
Total: 120 registros iniciais
- Tipo: SQLite
- Arquivo:
ControleInterno.db - Criação: Automática na primeira execução via
EnsureCreated() - Dados: Populados automaticamente com dados de exemplo através de
SeedData.Initialize()
POST /api/politicas
Content-Type: application/json
{
"nome": "Política de Backup",
"descricao": "Define procedimentos para backup de dados",
"ativa": true
}GET /api/politicasGET /api/politicas/1POST /api/logsacesso
Content-Type: application/json
{
"usuario": "admin",
"acao": "Login",
"ipOrigem": "192.168.1.100"
}POST /api/trilhasauditoria
Content-Type: application/json
{
"entidadeAfetada": "Usuario",
"tipoOperacao": "CREATE",
"usuario": "admin",
"dadosNovos": "{\"nome\": \"novo_usuario\"}"
}DELETE /api/politicas/1A API retorna os seguintes códigos HTTP:
200 OK: Operação bem-sucedida (GET)201 Created: Registro criado com sucesso (POST)204 No Content: Registro excluído com sucesso (DELETE)400 Bad Request: Dados inválidos404 Not Found: Registro não encontrado500 Internal Server Error: Erro interno do servidor
Sistema desenvolvido como trabalho acadêmico para demonstração de conceitos de API RESTful, Entity Framework Core, Minimal APIs e integração com banco de dados SQLite.