【发布时间】: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