Google 云功能总是从 API 网关接收/
Google cloud function always receive / from API Gateway
让我们设置基础知识:
我正在使用 Google Api 具有不同后端的网关,例如 Google Cloud Function。
首先,我在包含原始请求 url 的 header 上使用 switch
语句解析 req
参数。 (非常凌乱但有效)
所以我决定使用 express 应用来代替我的云功能。
但事情是这样的:当我的路径是 时,我的函数总是从网关接收 /
并生成像 CANNOT GET / 这样的严重错误https:///mygateway/api/subservice/action
所以我的问题是:我可以更改 Express 应用程序的处理方式来解析包含原始请求 url 而不是默认路径 url 的 header 吗?
这是我的配置的一部分:
{
"swagger": "2.0",
"info": {
"title": "my API",
"version": "1.0.0"
},
"basePath": "/api",
"host": "mygateway.[REGION].gateway.dev",
"schemes": [
"https"
],
"paths": {
"/subservice/action": {
"get": {
"x-google-backend": {
"address": "https://[REGION]-[ProjectID].cloudfunctions.net/[mycloudfunction]"
},
"security": [
{
"jwt_security": []
}
],
我在这个问题上发现了一些类似的东西,这些东西引导我搜索响应
根据Google's explanation of path translation当我们使用x-google-backend
时,后端只会接收基本请求。我们必须使用参数 path_translation
来定义我们期望的行为。就我而言,我想接收相同的路径,所以我使用 APPEND_PATH_TO_ADDRESS
让我们设置基础知识: 我正在使用 Google Api 具有不同后端的网关,例如 Google Cloud Function。
首先,我在包含原始请求 url 的 header 上使用 switch
语句解析 req
参数。 (非常凌乱但有效)
所以我决定使用 express 应用来代替我的云功能。
但事情是这样的:当我的路径是 时,我的函数总是从网关接收 /
并生成像 CANNOT GET / 这样的严重错误https:///mygateway/api/subservice/action
所以我的问题是:我可以更改 Express 应用程序的处理方式来解析包含原始请求 url 而不是默认路径 url 的 header 吗?
这是我的配置的一部分:
{
"swagger": "2.0",
"info": {
"title": "my API",
"version": "1.0.0"
},
"basePath": "/api",
"host": "mygateway.[REGION].gateway.dev",
"schemes": [
"https"
],
"paths": {
"/subservice/action": {
"get": {
"x-google-backend": {
"address": "https://[REGION]-[ProjectID].cloudfunctions.net/[mycloudfunction]"
},
"security": [
{
"jwt_security": []
}
],
我在这个问题上发现了一些类似的东西,这些东西引导我搜索响应
根据Google's explanation of path translation当我们使用x-google-backend
时,后端只会接收基本请求。我们必须使用参数 path_translation
来定义我们期望的行为。就我而言,我想接收相同的路径,所以我使用 APPEND_PATH_TO_ADDRESS