Tengo la siguiente pieza de especificaciones de openapi:
* type: * - string * - array * items: * $ref: '#/components/schemas/objectType'Tengo una entrada que podría ser una cadena vacía o una matriz de objetos. Cuando genero el modelo anterior, me da el siguiente tipo:
string | any[]Sin embargo, lo que necesito es:
string | objectType[]¿Qué estoy haciendo mal?
Creo que quieres hacer uso de la propiedad oneOf . Aquí hay un pequeño documento de ejemplo que creo que hace lo que estás buscando.
nota: oneOf es una matriz de objetos, cada uno de los cuales declara un tipo de esquema completo, en lugar de una matriz de tipos adyacentes a una declaración de items como en su código. Este anidamiento es importante y permite la expresión de tipos de unión arbitrariamente complejos.
openapi: 3.0.1 info: title: Test API version: 1.0.0 paths: /foo: get: responses: 200: description: "OK" content: application/json: schema: oneOf: # <--- create a union type - type: string # <--- string | - type: array # <--- FooResponseObject[] items: $ref: "#/components/schemas/FooResponseObject" components: schemas: FooResponseObject: type: object properties: id: type: string name: type: string