gcp api 网关在调用 x-google-backend 之前是否根据 OpenAPI 规范验证请求主体?
Does gcp api gateway validate request body against OpenAPI spec before calling x-google-backend?
当我使用邮递员时,Google 似乎没有验证我的请求正文架构,甚至没有验证请求是否有正文。我错过了什么吗?对我来说,这意味着 google 在调用 x-google- 后端之前验证了这类事情,但它总是将请求传递到我的云函数,无论我是否传递有效数据。
我正在使用这个问题 作为指导。
/users:
post:
summary: Creates a new user.
operationId: createUser
consumes:
- application/json
parameters:
- in: body
name: body
description: The user to create.
required: true
schema:
$ref: './schemas/user.yaml'
x-google-backend:
address: https://us-central1-blablabla.cloudfunctions.net/blabla
responses:
201:
description: Created
user.yaml:
type: object
required:
- username
- password
- repeatPassword
- email
properties:
username:
type: string
minLength: 3
maxLength: 50
password:
type: string
minLength: 6
maxLength: 64
repeatPassword:
type: string
minLength: 6
maxLength: 64
email:
type: string
minLength: 3
maxLength: 50
目前,使用 OpenAPI 时存在一些限制。可扩展服务代理 (ESP) 或 Cloud Endpoints Framework 忽略了一些范围。
首先是required
参数。 Endpoints 接受包含必需参数和类型定义的 OpenAPI 文档,但这不是 ESP 所要求的,只是将传入请求转发到您的 API.
最后是外部类型引用。端点不支持对 OpenAPI 之外的类型的引用,这意味着,$ref: './schemas/user.yaml'
将被端点忽略。
请注意,您对 API 网关使用与用于 Cloud Endpoints 相同的 OpenAPI 语法,这些链接还引用了 Cloud Endpoints 文档中的位置。
这是 guide for OpenAPI feature limitations。它还包括被 OpenAPI.
忽略的其他范围、参数、模式和类型
我还建议提交 feature request。这样以后,这些功能就可以用到这些类型的项目中了。
只是补充罗伯特已经说过的话,看起来这不是 API 网关提供的东西,正如所讨论的 here:
“我们可以将任何 'logic' 添加到 Google API GW 吗?一个例子是检查有效负载(在验证 JWT 和 API 之后)和决定是调用微服务 A 还是调用微服务 B;
不,不支持。"
Google 似乎没有验证我的请求正文架构,甚至没有验证请求是否有正文。我错过了什么吗?对我来说,这意味着 google 在调用 x-google- 后端之前验证了这类事情,但它总是将请求传递到我的云函数,无论我是否传递有效数据。
我正在使用这个问题
/users:
post:
summary: Creates a new user.
operationId: createUser
consumes:
- application/json
parameters:
- in: body
name: body
description: The user to create.
required: true
schema:
$ref: './schemas/user.yaml'
x-google-backend:
address: https://us-central1-blablabla.cloudfunctions.net/blabla
responses:
201:
description: Created
user.yaml:
type: object
required:
- username
- password
- repeatPassword
- email
properties:
username:
type: string
minLength: 3
maxLength: 50
password:
type: string
minLength: 6
maxLength: 64
repeatPassword:
type: string
minLength: 6
maxLength: 64
email:
type: string
minLength: 3
maxLength: 50
目前,使用 OpenAPI 时存在一些限制。可扩展服务代理 (ESP) 或 Cloud Endpoints Framework 忽略了一些范围。
首先是required
参数。 Endpoints 接受包含必需参数和类型定义的 OpenAPI 文档,但这不是 ESP 所要求的,只是将传入请求转发到您的 API.
最后是外部类型引用。端点不支持对 OpenAPI 之外的类型的引用,这意味着,$ref: './schemas/user.yaml'
将被端点忽略。
请注意,您对 API 网关使用与用于 Cloud Endpoints 相同的 OpenAPI 语法,这些链接还引用了 Cloud Endpoints 文档中的位置。
这是 guide for OpenAPI feature limitations。它还包括被 OpenAPI.
忽略的其他范围、参数、模式和类型我还建议提交 feature request。这样以后,这些功能就可以用到这些类型的项目中了。
只是补充罗伯特已经说过的话,看起来这不是 API 网关提供的东西,正如所讨论的 here:
“我们可以将任何 'logic' 添加到 Google API GW 吗?一个例子是检查有效负载(在验证 JWT 和 API 之后)和决定是调用微服务 A 还是调用微服务 B;
不,不支持。"