Skip to content

JSON Schema 2020-12: validación de arrays/objetos (contains, minContains, maxContains, propertyNames, unevaluated*, dependent*, if/then/else) #4

Description

@joseegman-idoneea

Contexto

Mejora derivada de la auditoría 3.1 (ver PR sngular#382).

Situación actual

Estas keywords se parsean pero se ignoran (caen en el default de ModelBuilder.addPropertiesToFieldObject). No rompen la generación, pero no se hace cumplir ninguna validación:

  • contains / minContains / maxContains (arrays)
  • propertyNames
  • unevaluatedProperties / unevaluatedItems
  • dependentRequired / dependentSchemas
  • if / then / else

Propuesta

Añadir soporte de validación al estilo del existente (Bean Validation con validadores custom):

  1. Nuevos campos en SchemaFieldObjectProperties.
  2. Parseo en addPropertiesToFieldObject.
  3. Nuevos pares de plantilla anotación+validador en templates/customannotations/ (siguiendo el patrón de MaxItems, Size, etc.).
  4. Imports + anotaciones en templateSchema.ftlh.

Priorizar contains/minContains/maxContains (los más accionables).

Impacto / esfuerzo

Impacto: medio (uso poco frecuente en specs OpenAPI). Esfuerzo: medio-alto (infraestructura de validadores nueva por keyword).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions