Piloto Resource-Oriented em `src/test`

Piloto Resource-Oriented em src/test

Status do documento

Este documento continua atual como referência técnica do piloto interno que provou o baseline resource-oriented dentro do starter. Ele não é onboarding básico; é uma prova operacional e histórica do endurecimento interno do core novo.

Objetivo

Antes de migrar qualquer consumidor externo, o praxis-metadata-starter precisa provar o novo core resource-oriented dentro do proprio repositorio.

O piloto oficial desta fase fica em:

Ele substitui o piloto JPA de escrita que antes exercitava:

e passa a validar o contrato canonico novo com:

O que o piloto prova

1. Boundary separado de leitura e escrita

O recurso de teste nao usa mais DTO unico.

Ele nasce com:

2. Integridade de logica de negocio no service novo

O service piloto usa:

Isso prova que o boundary novo preserva:

3. Integridade HTTP do controller novo

O controller piloto usa:

Isso prova a surface HTTP nova para:

4. Integridade documental do starter

O piloto nao valida so payload de negocio. Ele tambem prova que a camada documental acompanha o core novo:

Com isso, o starter garante que:

5. Ciclo CRUD real no consumidor piloto

O piloto cobre o ciclo essencial do recurso migrado:

Escopo minimo de validacao

Antes de sair deste starter para outro projeto, a suite focal minima do piloto deve passar:

mvn "-Dtest=AbstractResourceControllerJpaWriteIntegrationTest,AbstractBaseResourceServiceTest,AbstractResourceControllerMappedCrudTest,AbstractResourceQueryControllerGetByIdsTest,AbstractResourceControllerLinksTest,AbstractResourceQueryControllerHateoasTest,AbstractResourceQueryControllerBasePathDetectionTest,AbstractReadOnlyResourceControllerLinksTest,ApiDocsControllerTest,ApiDocsControllerPathResolutionTest,OpenApiDocsSupportTest,DynamicSwaggerConfigTest" test

Observacao:

Criterio de pronto para migrar consumidor externo

Nao devemos migrar praxis-api-quickstart ou qualquer outro host enquanto este piloto nao estiver:

Como transpor o piloto interno para um consumidor externo

O que o piloto interno ja prova

O piloto em src/test ja prova que o starter suporta, de ponta a ponta:

Como levar isso para um host real

Ao migrar o primeiro consumidor externo, siga esta ordem:

  1. escolha um recurso pequeno, com escopo congelado
  2. substitua o DTO unico por:
  3. troque o controller legado por:
  4. troque o service legado por:
  5. introduza @ResourceIntent, @UiSurface e @WorkflowAction apenas quando houver operacoes reais correspondentes
  6. valide no host:

O que nao fazer na transposicao

Regra de engenharia

Qualquer ajuste no core AbstractResource* que altere:

deve primeiro manter este piloto verde.

Se o piloto quebrar, a mudanca ainda nao esta pronta para sair do starter.