首页
/ Changedetection.io API 中浏览器步骤(browser_steps)的请求验证问题分析

Changedetection.io API 中浏览器步骤(browser_steps)的请求验证问题分析

2025-05-08 13:37:25作者:龚格成

Changedetection.io 是一款优秀的网站变更检测工具,其API接口在0.48.06版本中存在一个关于浏览器步骤(browser_steps)的请求验证问题。本文将深入分析这个问题,并提供临时解决方案。

问题现象

当用户通过API创建或更新监控任务(watch)时,如果请求体JSON中包含非空的browser_steps数组,API会返回400 Bad Request错误。错误信息表明browser_steps数组中的项目必须为字符串类型(String),这显然与实际的JSON模式不匹配。

问题重现

  1. 通过GET请求获取一个包含浏览器步骤的现有watch的JSON数据
  2. 清理不必要属性(如uuid、date_created等)
  3. 使用POST请求创建新watch时,包含非空browser_steps的请求会失败
  4. 移除browser_steps属性或设为空数组后,请求则能成功

技术分析

这个问题源于API接口对browser_steps参数的验证逻辑存在缺陷。根据实际使用场景,browser_steps应该是一个包含多个步骤对象的数组,每个步骤对象都有特定结构,而非简单的字符串。

临时解决方案

目前有以下几种临时解决方案:

  1. 空数组法:将browser_steps设为空数组[]
  2. 直接修改配置文件
    • 完全停止Changedetection.io服务
    • 直接编辑url-watches.json文件
    • 确保文件修改完成后重启服务
    • 注意:在容器运行时修改会导致修改被覆盖

最佳实践建议

在使用API时,建议:

  1. 避免在API请求中包含只读属性或内部状态属性
  2. 目前版本应暂时避免通过API操作browser_steps
  3. 等待官方修复此验证问题

总结

这个API验证问题影响了通过编程方式创建包含浏览器步骤的监控任务。虽然有空数组法等临时解决方案,但最理想的还是等待官方修复。用户在操作时应注意服务停止和文件修改的时序问题,避免配置被意外覆盖。

登录后查看全文
热门项目推荐
相关项目推荐