O designer de APIs de um projeto Spring Boot no iGRP Studio — módulos, esquemas (entidades), contracts (DTOs) e endpoints, e o código que o Studio gera a partir deles.
Num projeto Spring Boot, o Studio abre o designer de APIs: constróis a aplicação de forma visual — módulos por domínio, esquemas (entidades JPA), contracts (DTOs com validações) e endpoints REST — e o Studio gera o código correspondente.
A árvore de APIs
À esquerda, o painel APIs mostra os módulos do projeto. Cada módulo tem Endpoints, Contract, Esquemas e GraphQL; Componentes é o módulo partilhado (shared).
Para criar, passa o rato sobre um nó e usa o + que aparece à direita — por exemplo, no nó Esquemas: Novo Schema, Importar tabela de base de dados, Importar (ficheiros JSON Schema) e Diagrama ERD. O + da barra de separadores abre também um separador New… com Novo Esquema (⌘M), Novo Endpoint (⌘E) e Novo Contract (⌘O).

Esquemas e contracts criados pelo separador New… vão para o módulo partilhado
O editor não pergunta o módulo: o que crias a partir do + da barra de separadores fica em Componentes (shared). Para criar dentro de um módulo, usa o + do nó desse módulo na árvore.
1. Criar um módulo
Organiza a aplicação em módulos por domínio. O + no topo do painel APIs abre Criar novo módulo: dá-lhe um nome (por exemplo pedidos) e Guardar módulo.

2. Esquemas
Os esquemas são as entidades do domínio, mapeadas para tabelas da base de dados.

| Campo | |
|---|---|
| Nome / Nome da Tabela | Nome da entidade (Pedido) e da tabela (t_pedido, preenchido a partir do nome) |
| Auditoria | Regista automaticamente as datas de criação e alteração |
| Gerar APIs CRUD | Gera os endpoints CRUD do esquema |
| OData | Em breve |
Os separadores Campos, Índices e Restrições Únicas definem a estrutura. Cada campo tem nome e tipo — Tipo de dados (agrupados em Timing, Numeric, Text, Media, Json, Misc, Generic, Uri), Enum ou Relação (ver Diagrama ER). O botão ao lado do tipo abre as propriedades:

id já vem marcado)NOT NULL3. Contracts
Os contracts (DTOs) transportam dados entre as camadas — por exemplo o corpo de um pedido à API.

| Campo | |
|---|---|
| Kind | Data Transfer Object |
| Nome | Nome do contract (PedidoRequest) |
| Template | Default |
| extends | Contract a estender (opcional) |
| Ativar Validação Personalizada / Somente Leitura | Validação própria do contract / contract só de leitura |
Cada atributo tem validações próprias, no botão ao lado do tipo:

4. Endpoints
Um endpoint agrupa ações (operações HTTP). Novo Endpoint abre o editor de uma ação:
pedidos) e o Nome da Ação (criarPedido).PedidoRequest).
O diálogo Criar Novo Endpoint pede o Nome do Endpoint (Pedidos, sem espaços nem hífenes, até 20 caracteres), o Caminho Base, o Módulo e a Descrição.

Caminho Base sem barra inicial
Escreve api/v1, não /api/v1. Com a barra, a gravação falha (basePath: must match pattern) e a ação fica bloqueada até fechares o separador.
Security
O separador Security de uma ação define quem lhe pode aceder:
- Permissões — escreve o nome (por exemplo
pedidos.criar) e Adicionar. O Operador de Permissões decide se é preciso qualquer (OR) ou todas (AND). - Funções — funções exigidas (por exemplo
OPERADOR); basta o utilizador ter uma.
O Studio gera as anotações de permissão no controlador — ver Permissões no backend.
Código gerado
Ao gravar, o Studio gera o código do projeto Spring Boot. No estilo Technical (o predefinido):
Onde fica cada ficheiro, e o que podes editar, está em Projeto Spring Boot.
Módulo partilhado
O projeto inclui o módulo Componentes (shared), criado automaticamente, para o que é comum a vários domínios — esquemas, contracts, utilitários, constantes e exceções.

Eliminar recursos
Um esquema, contract ou ação abertos têm o botão de eliminar (lixo) ao lado de Salvar.

Verifica as dependências
Antes de eliminar, confirma que nada depende do recurso — um contract usado no corpo de uma ação, uma entidade referenciada numa relação.
Última atualização:
