es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo establecer las propiedades de Swagger para una lista de String List?

Estoy intentando crear la documentación de swagger de springDoc, y me gustaría representar datos como este:
List<String> elementos;
teniendo algunas propiedades como minSize y MaxSize / longitud mínima y máxima para los valores de la lista.
He intentado con esto:
java
@Schema(required = true, minLength = 12,maxLength = 20)
List<String> elementos;

y
java
@Size(min=10,max=20)
List<String> elementos;

resultado:
json
"Productos": {
"título": "Productos",
"tipo": "objeto",
"propiedades": {
"elementos": {
"tipo": "array",
"elementos": {
"tipo": "cadena"
}
}
}
}

Alguna idea para obtener este resultado:
json
"Productos": {
"título": "Productos",
"tipo": "objeto",
"propiedades": {
"elementos": {
"tipo": "array",
"elementos": {
"tipo": "cadena",
"maxLength": 20,
"minLength": 5
}
}
}
}

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para representar propiedades como minSize o maxSize para valores en una lista, se puede utilizar la anotación @Schema con los campos minItems y maxItems. Para las propiedades minLength y maxLength de las cadenas individuales en la lista, se puede utilizar la anotación @Size. Así es como puede actualizar su código para lograr el resultado deseado:

    @Schema(required = true, minItems = 5, maxItems = 20)
    @Size(min=5,max=20)
    List<string> elements;
    

    Esto generará el siguiente JSON en la documentación de Swagger:

    "Products": {
      "title": "Products",
      "type": "object",
      "properties": {
        "elements": {
          "type": "array",
          "items": {
            "type": "string",
            "maxLength": 20,
            "minLength": 5
          }
        }
      }
    }
    

    Aquí, las propiedades minItems y maxItems de la anotación @Schema especifican los tamaños mínimo y máximo de la lista, mientras que las propiedades minLength y maxLength de la anotación @Size especifican las longitudes mínima y máxima de las cadenas individuales en la lista.

Comments are closed.