APIs REST — Java 17 + Spring Boot
Backend REST do ecossistema. 8 projetos independentes, cada um servindo um domínio.
Stack
| Item | Detalhe |
|---|---|
| Linguagem | Java 17 |
| Framework | Spring Boot 2.x |
| Deploy | WildFly (arquivo WAR) |
| Banco de dados | Firebird via JDBC |
| Auth | JWT (token enviado no header Authorization: Bearer <token>) |
| Build | Maven (submodulos *AS + *Modelo) |
Projetos e Responsabilidades
source/Server/
├── JunsoftWebAPI/ ← API PRINCIPAL
├── CaptacaoMobile/ ← Coleta de leite
├── InventarioMobile/ ← Inventário mobile
├── PedidoMobile/ ← Pedidos mobile
├── LicencaMobile/ ← Licenciamento mobile
├── JunsoftApollo/ ← Apollo (web/JSF legado)
├── VulcanoColeta/ ← Coleta Vulcano
└── VulcanoProd/ ← Produção Vulcano
JunsoftWebAPI — API Principal
Localização: source/Server/JunsoftWebAPI/
Spring Boot: 2.5.7 | Deploy: WAR no WildFly
Estrutura de Pacotes
junsoft.erp/
├── controller/ ← 27 REST Controllers
├── service/ ← Regras de negócio
├── repository/ ← Acesso a dados
├── domain/ ← Entidades JPA
├── dto/ ← Data Transfer Objects
├── mapper/ ← DTO ↔ Domain mappers
├── security/ ← Configuração JWT/Spring Security
├── config/ ← Configurações Spring
├── exception/ ← Tratamento de erros
├── core/ ← Utilitários base
├── Utils/ ← Helpers
└── enums/ ← Enumerações
Controllers REST (27)
| Controller | Módulo ERP |
|---|---|
| PedidoController | Pedidos |
| OrcamentoController | Pedidos |
| EstoqueController | Estoque |
| MovimentacaoController | Estoque |
| ItemController | Cadastro de itens/produtos |
| ItemPrecoController | Tabela de preços |
| PessoaController | Cadastro de clientes/fornecedores |
| EnderecoPessoaController | Endereços |
| EmpresaController | Cadastro de empresas |
| UsuarioController | Gestão de usuários |
| VendedorController | Faturamento |
| CondPagtoController | Condições de pagamento |
| FormaPagtoController | Formas de pagamento |
| OrdemServicoController | Equipamentos |
| RequisicaoOficinaController | Equipamentos |
| ChecklistController | Equipamentos |
| VeiculoController | Cadastro de veículos |
| MarcaController | Cadastro de marcas |
| BeneficioClienteController | Benefícios de clientes |
| LicencaController | Licenciamento |
| ListaValorController | Tabela LISTAVALOR (lookup) |
| ConsultaController | Consultas genéricas |
| ParametrosController | Parâmetros do sistema |
| SuperVisorController | Funcionalidades supervisor |
| CepController | Consulta CEP |
| MunicipioController | Cadastro de municípios |
| EventsController | Eventos/webhooks |
CaptacaoMobile API
Localização: source/Server/CaptacaoMobile/
Submodulos: CaptacaoMobileAS + CaptacaoMobileModelo
Serve o app Coleta — coleta de leite. Consumido pelo app Android CaptacaoMobileAPK.
PedidoMobile API
Localização: source/Server/PedidoMobile/
Submodulos: ERPPedidoRestAS + ERPPedidoRestModelo
Serve pedidos mobile para vendedores externos. Relacionado com Pedidos.
VulcanoColeta / VulcanoProd
Localização: source/Server/VulcanoColeta/ | source/Server/VulcanoProd/
- 50+ DAOs cada
- 40+ REST Resources (endpoints) cada
- Sistema Vulcano: linha de coleta e produção
JunsoftApollo
Localização: source/Server/JunsoftApollo/
Tecnologia: Spring Boot / JSF (legado web)
DAOs: EmpresaDAO, ItemDAO, PessoaDAO Beans: EmpresaNegocio, ItemNegocio, PessoaNegocio
PortalWebAPI
Localização: source/JunsoftPortalWeb/PortalWebAPI/
Spring Boot: 2.7.18 | Java: 17
Serve exclusivamente o Portal Web.
Autenticação JWT
POST /auth
Body: { username, password, cd_empresa }
Response: { token: "eyJ..." }
Uso: Authorization: Bearer <token>
Permissões: respeitam tabela ACESSO do ERP (configurada no Desktop).
Conexões
- Serve: Portal Web, Mobile
- Acessa: Banco de Dados via JDBC
- Permissões gerenciadas pelo: Desktop Delphi (tabela ACESSO)