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

如何提取REST API返回JSON中的app_id并执行对应DELETE操作

批量清理应用配置操作方案

以下两种方案均可以实现「拉取全量配置-提取应用ID-批量删除」的全流程,根据自己的运行环境选择即可。


方案1:cURL + jq 命令行实现(适合Linux/macOS/WSL环境)

这个方案是命令行环境下最简便的实现,依赖JSON处理工具jq,先安装对应环境的jq:

  • Debian/Ubuntu系:sudo apt install jq
  • CentOS/RHEL系:sudo yum install jq
  • macOS(Homebrew):brew install jq

安装完成后,替换命令里的API_TOKEN为你自己的真实接口令牌,直接执行即可:

# 配置基础参数
API_TOKEN="替换为你的真实Api-Token"
API_ADDR="https://website.com/api/v2/data/apps/conf"

# 拉取全量配置、提取app_id、循环执行删除
curl -s -X GET "$API_ADDR" \
  -H "accept: application/json" \
  -H "Api-Token: $API_TOKEN" \
| jq -r '.data.conf[].app_id' \
| while read -r app_id; do
    echo "开始删除app_id=${app_id}的配置"
    curl -s -X DELETE "${API_ADDR}/${app_id}" \
      -H "accept: application/json" \
      -H "Api-Token: $API_TOKEN"
    echo -e "\n"
  done

执行前可以先单独运行GET请求+jq提取的部分(即curl到jq那两行),先打印出所有待删除的app_id列表,核对无误后再执行后续删除逻辑,避免误删。


方案2:Python脚本实现(全平台通用,无额外依赖)

如果是Windows环境,或者不想额外装jq,可以用Python标准库写脚本实现,不需要安装第三方依赖,只要本地有Python3环境就能跑:

  1. 新建文件clean_app.py,写入以下内容,替换开头的API_TOKEN为真实令牌:
import json
import time
import urllib.request
import urllib.error

API_TOKEN = "替换为你的真实Api-Token"
API_ADDR = "https://website.com/api/v2/data/apps/conf"

# 拉取全量应用配置
get_req = urllib.request.Request(
    API_ADDR,
    headers={
        "accept": "application/json",
        "Api-Token": API_TOKEN
    }
)
with urllib.request.urlopen(get_req) as resp:
    conf_list = json.loads(resp.read().decode())

# 提取所有待删除的app_id
app_ids = [item["app_id"] for item in conf_list["data"]["conf"]]
print(f"待删除应用ID列表:{app_ids},共{len(app_ids)}条配置")

# 逐个执行删除
for aid in app_ids:
    print(f"正在删除app_id={aid}...")
    del_req = urllib.request.Request(
        f"{API_ADDR}/{aid}",
        method="DELETE",
        headers={
            "accept": "application/json",
            "Api-Token": API_TOKEN
        }
    )
    try:
        with urllib.request.urlopen(del_req) as del_resp:
            print(f"app_id={aid} 删除成功,状态码:{del_resp.status}")
    except urllib.error.HTTPError as e:
        print(f"app_id={aid} 删除失败,状态码:{e.code},错误:{e.read().decode()}")
    # 如果接口有请求频率限制,把下面这行注释打开,每次请求间隔1秒
    # time.sleep(1)
  1. 打开终端进入文件所在目录,执行python clean_app.py即可运行。

注意事项

  • 必须在执行删除操作前,先单独调用GET接口把全量配置做本地备份,删除操作不可逆,避免配置丢失无法恢复
  • 如果接口配置了请求频率限制,按照脚本/命令里的提示加请求间隔即可,避免触发限流被拦截
  • 生产环境操作建议先在测试环境验证脚本逻辑,确认删除范围符合预期后再执行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 21:30:42