Google 端点路径模板 "Path does not match any requirement URI template."
Google endpoint path template "Path does not match any requirement URI template."
大家好,我通过 yaml 创建和使用了 openAPI,我创建了映射 2 个云函数的端点,这些函数使用路径模板通过 google sdk cli 无错误地路由调用。
现在我通过 POST https://myendpointname-3p5hncu3ha-ew.a.run.app/v1/setdndforrefcli/12588/dnd?key=[apikey]
调用,因为它由 below open api 映射并回复我 "Path does not match any requirement URI template."。
我不知道为什么端点中的 path template 不起作用我添加了 path_translation: APPEND_PATH_TO_ADDRESS 以避免 google 使用 CONSTANT_ADDRESS 默认值,它在查询字符串中附加带有残酷 [name of cloud function]?GETid=12588 的 id 并覆盖具有相同名称的查询参数。
有人可以告诉我如何调试端点或 openAPI 中的错误(端点中有绿色勾选 ok 图标)?
# [START swagger]
swagger: '2.0'
info:
description: "Get data "
title: "Cloud Endpoint + GCF"
version: "1.0.0"
host: myendpointname-3p5hncu3ha-ew.a.run.app
# [END swagger]
basePath: "/v1"
#consumes:
# - application/json
#produces:
# - application/json
schemes:
- https
paths:
/setdndforrefcli/{id}/dnd:
post:
summary:
operationId: setdndforrefcli
parameters:
- name: id # is the id parameter in the path
in: path # is the parameter where is in query for rest or path for restful
required: true
type: integer
format: int64
minimum: 1
security:
- api_key: []
x-google-backend:
address: https://REGION-PROJECT-ID.cloudfunctions.net/mycloudfunction
path_translation: APPEND_PATH_TO_ADDRESS
protocol: h2
responses:
'200':
description: A successful response
schema:
type: string
# [START securityDef]
securityDefinitions:
# This section configures basic authentication with an API key.
api_key:
type: "apiKey"
name: "key"
in: "query"
# [END securityDef]
我有同样的错误,但在做了一些测试后我能够成功使用路径模板 (/endpoint/{id})。我按如下方式解决了这个问题:
1 .- gcloud 端点服务部署 openapi-functions.yaml \
--project 项目
在这里您将获得一个新的服务配置,您将在接下来的步骤中使用它。
2.-
chmod +x gcloud_build_image
./gcloud_build_image -s 服务 \
-c NEWSERVICECONFIGURATION -p 项目
它非常重要在托管服务的每个新部署中更改服务配置。
3.- gcloud 运行 部署服务 \
--image="gcr.io/PROJECT/endpoints-runtime-serverless:SERVICE-NEW_SERVICE_CONFIGURATION" \
--允许未经身份验证\
--平台管理\
--project=项目
大家好,我通过 yaml 创建和使用了 openAPI,我创建了映射 2 个云函数的端点,这些函数使用路径模板通过 google sdk cli 无错误地路由调用。
现在我通过 POST https://myendpointname-3p5hncu3ha-ew.a.run.app/v1/setdndforrefcli/12588/dnd?key=[apikey]
调用,因为它由 below open api 映射并回复我 "Path does not match any requirement URI template."。
我不知道为什么端点中的 path template 不起作用我添加了 path_translation: APPEND_PATH_TO_ADDRESS 以避免 google 使用 CONSTANT_ADDRESS 默认值,它在查询字符串中附加带有残酷 [name of cloud function]?GETid=12588 的 id 并覆盖具有相同名称的查询参数。
有人可以告诉我如何调试端点或 openAPI 中的错误(端点中有绿色勾选 ok 图标)?
# [START swagger]
swagger: '2.0'
info:
description: "Get data "
title: "Cloud Endpoint + GCF"
version: "1.0.0"
host: myendpointname-3p5hncu3ha-ew.a.run.app
# [END swagger]
basePath: "/v1"
#consumes:
# - application/json
#produces:
# - application/json
schemes:
- https
paths:
/setdndforrefcli/{id}/dnd:
post:
summary:
operationId: setdndforrefcli
parameters:
- name: id # is the id parameter in the path
in: path # is the parameter where is in query for rest or path for restful
required: true
type: integer
format: int64
minimum: 1
security:
- api_key: []
x-google-backend:
address: https://REGION-PROJECT-ID.cloudfunctions.net/mycloudfunction
path_translation: APPEND_PATH_TO_ADDRESS
protocol: h2
responses:
'200':
description: A successful response
schema:
type: string
# [START securityDef]
securityDefinitions:
# This section configures basic authentication with an API key.
api_key:
type: "apiKey"
name: "key"
in: "query"
# [END securityDef]
我有同样的错误,但在做了一些测试后我能够成功使用路径模板 (/endpoint/{id})。我按如下方式解决了这个问题:
1 .- gcloud 端点服务部署 openapi-functions.yaml \ --project 项目
在这里您将获得一个新的服务配置,您将在接下来的步骤中使用它。
2.-
chmod +x gcloud_build_image
./gcloud_build_image -s 服务 \
-c NEWSERVICECONFIGURATION -p 项目
它非常重要在托管服务的每个新部署中更改服务配置。
3.- gcloud 运行 部署服务 \ --image="gcr.io/PROJECT/endpoints-runtime-serverless:SERVICE-NEW_SERVICE_CONFIGURATION" \ --允许未经身份验证\ --平台管理\ --project=项目