【问题标题】:Schema object properties validation模式对象属性验证
【发布时间】:2019-09-10 07:01:56
【问题描述】:

根据 OpenAPI 规范 [https://swagger.io/specification/] 我可以在模式对象属性中定义字段的最小值和最大值。

但实际上谷歌端点并没有执行任何验证

我的 Swagger 文件片段: 参数:

    - name: message 

      in: body 

      description: sug

      schema:

        required:

          - Message

        properties:

          Message:

            type: integer

            minimum: 1

            maximum: 1

          MessageId:

当我发送错误请求时: curl https://xxxxxxxxxxxxxxxxxxxxd"Message=10&MessageId=456789123456&TimeStamp=20190611101010212&OperatorId=15&GlobalAccountId=81165751216851320000&Reason=3" Endpoint 不拒绝请求,而是调用云函数。

【问题讨论】:

  • 查看您提供的链接以及here 我看到使用的关键字是schemas 而不是schema,这可能是导致错误的原因。在上述链接中,有一个与您正在使用的示例非常相似的示例,您能否检查问题是否与关键字的差异有关?
  • 谢谢,bhito。语法正确。这是从谷歌开发者门户复制/粘贴。问题是端点没有执行所需的验证。
  • 您是否尝试过分别使用最小和最大验证器?您可以先尝试启用最小值,然后尝试使其正常工作,然后对最大值进行同样的操作。问题可能是由于参数被视为逻辑OR 而不是逻辑AND。如果是这种情况,则 10 将符合 minimum: 1 限制,因此会发送消息。

标签: google-cloud-functions google-cloud-endpoints


【解决方案1】:

你是对的。 Google Cloud Endpoints 不执行任何 OpenAPI 对象属性验证。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-08
    • 1970-01-01
    • 2014-08-29
    • 2018-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-11
    相关资源
    最近更新 更多