Pular para o conteúdo principal

APIs REST — Java 17 + Spring Boot

Backend REST do ecossistema. 8 projetos independentes, cada um servindo um domínio.


Stack​

ItemDetalhe
LinguagemJava 17
FrameworkSpring Boot 2.x
DeployWildFly (arquivo WAR)
Banco de dadosFirebird via JDBC
AuthJWT (token enviado no header Authorization: Bearer <token>)
BuildMaven (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)​

ControllerMódulo ERP
PedidoControllerPedidos
OrcamentoControllerPedidos
EstoqueControllerEstoque
MovimentacaoControllerEstoque
ItemControllerCadastro de itens/produtos
ItemPrecoControllerTabela de preços
PessoaControllerCadastro de clientes/fornecedores
EnderecoPessoaControllerEndereços
EmpresaControllerCadastro de empresas
UsuarioControllerGestão de usuários
VendedorControllerFaturamento
CondPagtoControllerCondições de pagamento
FormaPagtoControllerFormas de pagamento
OrdemServicoControllerEquipamentos
RequisicaoOficinaControllerEquipamentos
ChecklistControllerEquipamentos
VeiculoControllerCadastro de veículos
MarcaControllerCadastro de marcas
BeneficioClienteControllerBenefícios de clientes
LicencaControllerLicenciamento
ListaValorControllerTabela LISTAVALOR (lookup)
ConsultaControllerConsultas genéricas
ParametrosControllerParâmetros do sistema
SuperVisorControllerFuncionalidades supervisor
CepControllerConsulta CEP
MunicipioControllerCadastro de municípios
EventsControllerEventos/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​