node.js - 在 Swagger OpenApi 3.0 中将数组作为查询参数传递
问题描述
我目前给出了以下代码来获取一组值作为查询参数(在 Node-express、nodejs v14.17 和 OpenAPI 版本 3.0.1 中),
- name: abcd
description: abcd
in: query
required: false
schema:
type: array
items:
type: string
object
但仅当至少有两个时,它才会将 req 作为值数组(类型为)发送。对于单个值,类型是string
。如何始终将 req 作为数组本身?
例如,如果我给出一个值说“Hello”,
console.log(typeof(req.query["abcd"]),req.query["abcd"])
O/P:string Hello
但如果我给出“Hello”和“World”,O/P:object ['Hello','World']
解决方案
正如这个答案所解释的,当查询参数被传递一个值时,例如?abcd=hello
,Express 将其解析为常规值(即字符串)而不是数组。
要传递一个单值数组,您需要[]
在查询参数名称的末尾附加,即?abcd[]=hello
. 这意味着您需要更改 OpenAPI 文件中的参数名称:
- name: abcd[] # <------------
description: abcd
in: query
required: false
schema:
type: array
items:
type: string
推荐阅读
- python - 在 python 中使用 sympy 库我想找到差异。这是我的代码
- python - 以 0 到 26 之间的整数计算“九”、“三”和“一”的个数
- javascript - 你好。如何在页面上显示 100 个结果 https://steamcommunity.com/market/search?appid=730
- spartacus-storefront - 3.x 版本中的 SSR 问题
- gradient - boosting回归中如何增加观察权重
- google-tag-manager - 在同一页面上的多个标签管理器容器上使用同意触发器
- python - 比“查询”更方便的方法是选择多索引行,通过索引级别的名称指定部分标签?
- c++ - 有没有办法在 Dev C++ 中启用 UNICODE 格式
- python-telegram-bot - 使用 python 使用电报机器人创建内联菜单
- r - 用 fable 包中的新训练数据重新拟合 arima 模型