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.

Especificar múltiples tipos para el mismo campo en las especificaciones de OpenAPI.

Estoy buscando representar el siguiente objeto JSON en OpenAPI:

{
  "name": "nombre del filtro",
  "type": "tipo de filtro",
  "depends_on": "filtro principal",
  "values": ["valor 1", "valor 2", ...]
  // o
  "value": {
    "padre 1": ["valor 1", "valor 2", ...],
    "padre 2": ["valor 3", "valor 4", ...],
    ...
  }
}

He intentado usar la siguiente especificación:

Filters:
  type: object
  properties:
    name:
      type: string
    type:
      type: string
    depends_on:
      type: string
    values:
      type: object
      additionalProperties:
        oneOf:
          - integer
          - string

pero no funcionó como se esperaba.

¿Alguien puede ayudarme con esto?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Aquí se muestra una forma de representar el objeto JSON en OpenAPI utilizando la sintaxis YAML:

    # Definir el esquema de los Filtros
    components:
      schemas:
        Filters:
          type: object
          properties:
            name:
              type: string
            type:
              type: string
            depends_on:
              type: string
            values:
              oneOf:
                # Definir los dos posibles tipos de valores
                - type: array
                  items:
                    type: string
                - type: object
                  additionalProperties:
                    type: array
                    items:
                      type: string
    
    # Definir el esquema de la solicitud FilterRequest
    FilterRequest:
      type: object
      properties:
        filter:
          $ref: '#/components/schemas/Filters'
    

    Esto define un esquema Filters con propiedades para name, type, depends_on y values. La propiedad values utiliza oneOf para permitir dos posibles tipos de valores: un arreglo de cadenas o un objeto con claves de tipo cadena y arreglos de cadenas como valores.

    A continuación, definimos un esquema FilterRequest con una propiedad filter que hace referencia al esquema Filters.

    Ten en cuenta que esta es solo una posible forma de representar el objeto JSON en OpenAPI; puede haber otros enfoques válidos dependiendo de tus necesidades.

Comments are closed.