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

通过Swagger导入AWS API Gateway时全局设置API Key必填方法

批量配置AWS API Gateway所有方法要求API Key的Swagger修改方案

一、添加API Key安全定义(securitySchemes)

首先需要在Swagger/OpenAPI文件的components节点下添加securitySchemes配置(Swagger 2.0版本对应节点为securityDefinitions,无需嵌套在components内):

# OpenAPI 3.x YAML格式
components:
  securitySchemes:
    api_key:
      type: apiKey
      name: x-api-key
      in: header
// OpenAPI 3.x JSON格式
"components": {
  "securitySchemes": {
    "api_key": {
      "type": "apiKey",
      "name": "x-api-key",
      "in": "header"
    }
  }
}

二、为所有方法启用API Key验证

有两种高效实现方式:

方式1:全局配置(推荐,无需逐个修改方法)

在Swagger文件的根节点添加security数组,所有方法会默认继承该验证规则,无需单独配置:

# OpenAPI 3.x YAML
security:
  - api_key: []
// OpenAPI 3.x JSON
"security": [
  {
    "api_key": []
  }
]

若个别方法不需要API Key验证,只需在该方法节点下添加security: []即可覆盖全局规则。

方式2:逐个方法批量配置

如果必须为每个方法单独添加配置,可通过以下工具批量修改:

方法A:jq命令行工具(JSON格式专用)

用jq遍历所有路径下的方法,自动添加security配置:

jq '(.paths | to_entries[] | .value | .[]).security = [{"api_key": []}]' your-swagger.json > updated-swagger.json

方法B:Python脚本批量修改

编写脚本遍历Swagger文件的paths节点,为每个方法插入配置:

import json

with open('your-swagger.json', 'r') as f:
    swagger = json.load(f)

# 遍历所有路径及对应方法
for path in swagger['paths'].values():
    for method in path.values():
        method['security'] = [{'api_key': []}]

with open('updated-swagger.json', 'w') as f:
    json.dump(swagger, f, indent=2)

方法C:编辑器正则替换(YAML格式专用)

用VS Code等编辑器的正则替换功能批量操作:

  1. 查找正则:(get|post|put|delete|patch):\s*$
  2. 替换内容:$1:\n security:\n - api_key: []
  3. 开启正则匹配模式后执行批量替换

三、导入修改后的Swagger到AWS API Gateway

修改完成后,将更新后的文件导入API Gateway:

  • 登录AWS控制台进入API Gateway服务
  • 选择目标Rest API,点击Actions -> Import API
  • 上传修改后的Swagger文件,完成API的创建或更新

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 15:30:56