iGRPIGRP 3.0Documentation

Projeto Spring Boot

O que vem num projeto backend gerado pelo Studio — stack, estrutura de pastas, o que é gerado e o que é teu, configuração por variáveis de ambiente e como o correr.

Um projeto backend criado no Studio é uma API Spring Boot 3.5 já ligada à plataforma: autenticação JWT, permissões do Access Management, PostgreSQL, OpenAPI e descoberta de serviços. Esta página descreve o projeto; para o criar, ver Primeiro projeto, e para o modelar, Studio · Backend.

Stack

Spring Boot 3.5 + Java 26Web, Data JPA, Data REST, Validation, GraphQL
Framework iGRPcv.igrp.framework:core e os módulos de autenticação (@IgrpController, @igrpAuthorization) — ver Backend
SegurançaSpring Security — OAuth2 resource server (JWT do Keycloak) e client M2M para o Access Management
DadosPostgreSQL (H2 nos testes), Hibernate
PlataformaEureka / Kubernetes discovery, Caffeine, springdoc-openapi (Swagger UI)
BuildMaven, Lombok

O projeto compila com Java 26

O pom.xml gerado fixa java.version em 26 — o artefacto de autenticação do iGRP é bytecode Java 26. Para compilar fora do Docker precisas do JDK 26. A imagem Docker do projeto já usa um JRE recente.

Estrutura

O exemplo é o projeto servico-demo, com o estilo Technical (o predefinido no assistente) e o módulo pedidos:

baseApi.json
ServicodemoApplication.java
application.properties
application-development.properties
application-staging.properties
application-production.properties
pom.xml
Dockerfile
docker-compose.yml
igrp-compose-<projeto>.yaml
.env.example

O que é do Studio e o que é teu

Pasta / ficheiroQuem escrevePara quê
.igrpstudio/StudioMódulos, esquemas, contracts e endpoints em JSON — a fonte do designer de APIs
models/<entidade>/StudioEntidade JPA e repositório Spring Data, por esquema. Com Gerar APIs CRUD, o repositório é exposto em REST (@RepositoryRestResource)
dto/StudioOs contracts (PedidoRequestDTO), com as validações
controllers/<endpoint>/StudioO controlador (@IgrpController, @PreAuthorize com as permissões do separador Security) e a interface do serviço (IPedidosService)
services/TuA implementação do serviço (PedidosService) — é aqui que escreves a lógica de cada ação
config/, security/, exceptions/TemplateAuditoria, Swagger, segurança, sincronização do perfil do utilizador, tratamento de erros
models/iamuserprofileentity/TemplatePerfil do utilizador sincronizado a partir do token
src/test/TemplateTestes de configuração, controladores, repositórios e segurança

O Studio regenera o que gera

Entidades, repositórios, DTOs e controladores são reescritos quando gravas no Studio — altera-os no designer de APIs, não no código. A lógica de negócio vai na implementação do serviço.

Estilo Domain-Driven Design

No assistente, Structure Style → Domain-Driven Design gera uma organização por domínio em vez de por camada técnica. Esta página descreve o estilo Technical.

Configuração

O application.properties lê tudo de variáveis de ambiente, documentadas no .env.example. Os perfis development, staging e production (SPRING_PROFILES_ACTIVE) acrescentam o que muda entre ambientes. As principais:

VariávelPor defeito
SERVICE_PORT8080Porta da API
POSTGRES_HOST, POSTGRES_PORT, POSTGRES_DATABASE, POSTGRES_USER, POSTGRES_PASSWORDBase de dados
HIBERNATE_DDLupdateGestão do esquema da base de dados
SECURITY_ENABLEDfalseAtiva a validação do JWT e as permissões
AUTH_JWT_ISSUERIssuer do Keycloak (realm)
IGRP_ACCESS_API_BASE_URLAPI do Access Management
EUREKA_CLIENT_ENABLEDfalseRegisto no Eureka
ENABLE_SWAGGERtrueSwagger UI

No workspace, o Studio trata disto

Num projeto criado dentro do workspace, o Studio regista o cliente OAuth, cria a base de dados (db/init-database.sh) e injeta estas variáveis ao fazer Deploy Docker — ver Projetos.

Segurança, filtro JWT e permissões estão em Permissões no backend e Segurança & configuração.

Correr

No cartão do projeto, ⋮ → Deploy Docker: a API fica em http://<slug>:<porta>/gateway-api/<projeto>, ligada à plataforma local.

Com ENABLE_SWAGGER=true, a documentação OpenAPI fica em /swagger-ui.html. Para testar a API no Studio, ver Run Preview.

How is this guide?

Última atualização: