Skip to content

Como Schemas Viram Componentes

Sistema que transforma JSON em componentes funcionais — schema entra, interface sai.

Factories

Factory Pattern é o coração do schepta:

O Que É:

InputFactoryOutputResultadoStatus
Form JSONFormFactoryReact/Vue FormInterface funcionandoPronto
Menu JSONMenuFactoryReact/Vue NavigationNavegação completaEm desenvolvimento

Como Funciona:

Processo Automático:

  1. JSON Schema define estrutura e comportamento (usando properties e x-component por nó)
  2. Factory interpreta schema e resolve componentes no registro (defaults + Provider + props locais)
  3. Middleware Pipeline transforma props (ex.: expressões de template)
  4. React/Vue Component renderiza a interface final

Exemplo Rápido:

json
{
  "type": "object",
  "x-component": "FormContainer",
  "properties": {
    "email": {
      "type": "string",
      "x-component": "InputText",
      "x-component-props": { "placeholder": "Email" }
    }
  }
}

FormFactory processa

jsx
<form>
  <input name="email" placeholder="Email" />
</form>

Resultado: JSON estruturado → Interface React/Vue funcional. Zero configuração manual!

Tipos de Factory

Cada Factory é especializada em um tipo de interface:

FormFactory - Formulários Dinâmicos:

Propriedade do SchemaFunçãoExemploResultado
propertiesDefine a estrutura do formulário (JSON Schema){ "email": { ... } }Nós aninhados com componentes
x-componentComponente a renderizar"InputText"Input de texto
x-component-propsProps do componente{ "placeholder": "Email" }Passadas ao componente
Propriedade do SchemaFunçãoExemploResultado
propertiesDefine itens de menu{ "home": {...} }Item de navegação
x-component-props.hrefLink de navegação"/dashboard"Link funcional
properties.submenuSubmenu hierárquicoPropriedades aninhadasMenu dropdown

Arquitetura da Factory

Como o Factory Pattern funciona internamente:

Pipeline de Processamento:

JSON Schema

Validar Schema (Estrutura correta?)

Resolver Componentes (x-component → componente de defaults / Provider / local)

Transformar Props (Middleware + contexto)

Orquestrar Render (Árvore final de componentes)

Elementos React/Vue

Como as Factories se Especializam:

Cada Factory tem lógica específica para seu domínio:

  • FormFactory: Injeta contexto do adapter de formulário, aplica validações, gerencia estado
  • MenuFactory: Gerencia navegação, estados ativos, hierarquia de menu

Pontos de extensão: components e customComponents do Provider, props da Factory para overrides locais, Middleware Pipeline (ex.: array middlewares), externalContext para estado compartilhado.

Casos de Uso Práticos

O Factory Pattern resolve problemas reais de desenvolvimento:

Cenários Resolvidos:

SituaçãoProblema TradicionalCom Factory PatternBenefício
Formulários RepetitivosCopy-paste de JSXSchema reutilizávelPrincípio DRY
Validações ComplexasCódigo duplicadoRegras no schemaCentralização
Menus DinâmicosCondicionais hardcodedExpressões em propsFlexibilidade
UI Multi-tenantBranches por clienteSchema por tenantEscalabilidade
A/B TestingFeature flags complexasSchemas diferentesAgilidade
Para EntenderLeiaRelação com Factories
Como escrever schemas02. Schema LanguageSintaxe que as factories interpretam
Pipeline interno04. Schema ResolutionComo as factories processam schemas
Motor de renderização05. RendererSistema usado pelas factories
Transformação de props06. MiddlewarePipeline aplicado pelas factories
Configuração global03. ProviderComo configurar as factories