Actualmente he dado el siguiente código para obtener una matriz de valores como parámetros de consulta (en Node-express, nodejs v14.17 y OpenAPI versión 3.0.1),
- name: abcd description: abcd in: query required: false schema: type: array items: type: string pero envía el req como una matriz de valores (el tipo es object ) solo si hay al menos dos de ellos. Para un solo valor, el tipo es string . ¿Cómo obtener siempre req como matriz?
Por ejemplo, si doy un solo valor, diga "Hola", console.log(typeof(req.query["abcd"]),req.query["abcd"]) O/P: string Hello pero si doy " Hola" y "Mundo", O/P: object ['Hello','World']
Como explica esta respuesta , cuando a un parámetro de consulta se le pasa un solo valor, por ejemplo, ?abcd=hello , Express lo analiza como un valor regular (es decir, una cadena) en lugar de una matriz.
Para pasar una matriz de un valor, debe agregar [] al final del nombre del parámetro de consulta, es decir, ?abcd[]=hello . Esto significa que debe cambiar el nombre del parámetro en su archivo OpenAPI:
- name: abcd[] # <------------ description: abcd in: query required: false schema: type: array items: type: string