You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在GCP API Gateway的YAML配置中为所有请求添加授权头?

在GCP API Gateway全局添加请求头的YAML配置方案

完全可以通过YAML配置实现让API Gateway自动为所有转发请求添加固定请求头。你当前的配置方向有误——现在的parameters是要求客户端传入x-cg-pro-api-key头,但你需要的是网关主动将这个密钥添加到发给后端的请求中。以下是两种可行方案:

方案1:单路径后端添加固定请求头(适合单个路径场景)

直接在对应路径的x-google-backend中添加headers字段,指定要传递的键值对:

swagger: "2.0"
info:
  title: Crypto API
  description: API Gateway with Cloud Run backend.
  version: 1.0.0
schemes:
  - https
produces:
  - application/json
paths:
  /new:
    get:
      summary: Returns a list of new coins.
      operationId: new
      x-google-backend:
        address: https://pro-api.coingecko.com/api/v3/coins/list/new
        # 网关自动向后端添加该请求头
        headers:
          x-cg-pro-api-key: "my_api_key"
      responses:
        '200':
           description: OK
           schema:
             type: string

方案2:全局配置所有路径的通用请求头(适合多路径场景)

如果你的API有多个路径都需要传递同一个请求头,可以通过以下两种方式实现:

方法A:全局参数+后端映射

通过全局定义参数并映射到后端请求头,后续路径只需引用该参数即可自动传递:

swagger: "2.0"
info:
  title: Crypto API
  description: API Gateway with Cloud Run backend.
  version: 1.0.0
schemes:
  - https
produces:
  - application/json
# 全局定义内部参数,无需客户端传入
parameters:
  global-api-key:
    name: x-cg-pro-api-key
    in: header
    type: string
    default: "my_api_key"
    x-google-hidden: true # 隐藏参数,避免要求客户端提供

paths:
  /new:
    get:
      summary: Returns a list of new coins.
      operationId: new
      parameters:
        - $ref: '#/parameters/global-api-key' # 引用全局参数
      x-google-backend:
        address: https://pro-api.coingecko.com/api/v3/coins/list/new
        headers:
          x-cg-pro-api-key: "{x-cg-pro-api-key}" # 映射到后端请求头
      responses:
        '200':
           description: OK
           schema:
             type: string
  # 其他路径只需重复引用全局参数即可
  /markets:
    get:
      summary: Returns market data.
      operationId: markets
      parameters:
        - $ref: '#/parameters/global-api-key'
      x-google-backend:
        address: https://pro-api.coingecko.com/api/v3/coins/markets
        headers:
          x-cg-pro-api-key: "{x-cg-pro-api-key}"
      responses:
        '200':
           description: OK
           schema:
             type: string

方法B:全局后端配置(所有路径共用同一后端时)

如果所有路径都指向同一后端服务,可在根节点定义全局x-google-backend,自动为所有请求添加头:

swagger: "2.0"
info:
  title: Crypto API
  description: API Gateway with Cloud Run backend.
  version: 1.0.0
schemes:
  - https
produces:
  - application/json
# 全局后端配置,所有路径默认继承此设置
x-google-backend:
  address: https://pro-api.coingecko.com/api/v3
  headers:
    x-cg-pro-api-key: "my_api_key"

paths:
  /new:
    get:
      summary: Returns a list of new coins.
      operationId: new
      # 路径会自动拼接在全局address后,完整请求路径为https://pro-api.coingecko.com/api/v3/new
      responses:
        '200':
           description: OK
           schema:
             type: string

关键注意事项

  • 移除原配置中要求客户端传入x-cg-pro-api-key的parameters块,避免客户端被强制要求传递该头。
  • 若使用密钥等敏感信息,建议不要硬编码在YAML中,改用GCP Secrets Manager存储,通过x-google-secret引用(如x-google-secret: projects/[PROJECT_ID]/secrets/[SECRET_NAME]/versions/latest),提升安全性。

内容的提问来源于stack exchange,提问作者Oscar Berggren

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 03:16:05