使用`express-openapi-validator`时无法传递动态查询参数

时间:2020-11-05 13:00:03

标签: openapi express-openapi-validator

这个想法来自here stack-overflow

在添加了允许动态查询参数的参数后,它会给出错误消息。

查询示例:

/pets:
    get:
      description: |
        Returns all pets
      operationId: findPets
      parameters:
        - name: params
          in: query
          required: false
          schema:
            type: object
            # If the parameter values are of specific type, e.g. string:
            # additionalProperties:
            #   type: string
            # If the parameter values can be of different types
            # (e.g. string, number, boolean, ...)
            additionalProperties: true

          # `style: form` and `explode: true` is the default serialization method
          # for query parameters, so these keywords can be omitted
          style: form
          explode: true
      responses:
        '200':
          description: pet response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Pet'
        default:
          description: unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'

执行查询,返回

{"message":"Cannot convert undefined or null to object"}

要复制

  • 克隆this repository
  • 运行npm install
  • 运行npm start
  • 运行curl http://localhost:3000/v1/pets\?type\=dog\&limit\=10\&test\=query

预期的行为 它必须允许所有查询字符串

1 个答案:

答案 0 :(得分:0)

这是express-openapi-validator软件包中的错误。

现在它已在v4.4.2

中修复

要测试功能,请参见this example project