GCP API网关:无法使用路径参数 [英] GCP API Gateway: Cannot use path params
本文介绍了GCP API网关:无法使用路径参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在努力将路径参数从我的网关传递到实际终结点。
以下是我的Open API YAML:
swagger: '2.0'
info:
description: |
Blah blah
version: 0.0.1
title: SSAuth
contact:
email: blah@gmail.com
schemes:
- https
produces:
- application/json
paths:
/v0/auth/users/echo:
get:
summary: check the health of api
operationId: healthCheck
consumes:
- application/json
produces:
- application/json
responses:
200:
description: OK
x-google-backend:
address: https://path-to-my-cloud-run-service/v0/auth/users/echo
security:
- api_key: []
/v0/auth/users/type/{type}:
post:
summary: Add a new user to the user
operationId: addUser
consumes:
- application/json
produces:
- application/json
parameters:
- name: type
in: path
description: provider type of the user
required: true
type: string
responses:
400:
description: Invalid input
200:
description: OK
x-google-backend:
address: https://path-to-my-cloud-run-service/v0/auth/users/type/`type`
security:
- api_key: []
securityDefinitions:
api_key:
type: apiKey
name: X-API-Key
in: header
当我得到第一条路径时,它起作用了。但在第二个路径中,有一个路径参数,我找不到将其传递给我的Cloud Run URL的pars的方法。在日志中,我看到的是https://path-to-my-cloud-run-service/v0/auth/users/type/%60type%60?type=email
而不是https://path-to-my-cloud-run-service/v0/auth/users/type/email
,这会导致我的服务因类型无效而被拒绝。
我需要在YAML中进行哪些更改才能使其正常工作?
我遇到的另一个问题是,如果我在正文中放入一个json,那么GET请求得到400个错误请求,即使我指定它使用应用程序/json。
推荐答案
挖掘后找到解决方案here。
这是Path_Transaltion,以下是正在运行的YAML:
swagger: '2.0'
info:
description: |
Blahblah
version: 0.0.1
title: Title
contact:
email: blah@gmail.com
schemes:
- https
produces:
- application/json
paths:
/v0/auth/users/echo:
get:
summary: check the health of api
operationId: healthCheck
consumes:
- application/json
produces:
- application/json
responses:
200:
description: OK
x-google-backend:
address: https://path-to-my-service
path_translation: APPEND_PATH_TO_ADDRESS
security:
- api_key: []
/v0/auth/users/type/{type}:
post:
summary: Add a new user to the user
operationId: addUser
consumes:
- application/json
produces:
- application/json
parameters:
- name: type
in: path
description: provider type of the user
required: true
type: string
responses:
400:
description: Invalid input
200:
description: OK
x-google-backend:
address: https://path-to-my-service
path_translation: APPEND_PATH_TO_ADDRESS
security:
- api_key: []
securityDefinitions:
api_key:
type: apiKey
name: X-API-Key
in: header
这篇关于GCP API网关:无法使用路径参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文