跳转到内容

V1 与 V2 接口对照

V1 时期的公开 API 文档共收录 13 个接口:10 个位于 /api/v1 下,另外 3 个公开接口没有版本前缀。下表已将全部 13 个旧接口映射到 V2。V2 对外共提供 34 个公开接口,其余 21 个属于没有旧版直接对应项的新增能力。V1 的一个请求体通常会拆分成 V2 路径、query 和更精简的 JSON 请求体。

V1 接口V2 替代接口必须修改的内容
GET /api/scraperGET /api/v2/workers/{workerId}GET /api/v2/workers/{workerId}/input-schemaslug query 值移入 {workerId},并将 owner/name 编码为 owner~name。Worker 详情接口现在需要认证;只需要输入契约时可调用公开的 input-schema 接口。
GET /api/storeGET /api/v2/storesearch 改为 keyword;分页时增加从 0 开始的 offsetlimit 默认值改为 20,最大为 100。
GET /api/proxy/regionGET /api/v2/proxy/region在路径中增加 /v2;V2 还提供可选的 language query 参数。
POST /api/v1/run/result/listGET /api/v2/worker-runs/{runId}/resultrun_slug 移入 {runId};把 page_indexpage_size 转换为 query 中的 offsetlimit
POST /api/v1/run/detailGET /api/v2/worker-runs/{runId}run_slug 从请求体移入 {runId},删除 JSON 请求体。
POST /api/v1/scraper/runPOST /api/v2/workers/{workerId}/runs用已验证的 {workerId} 路径值替代 scraper_slugversioninputcallback_urlis_async 仍放在请求体中;page_index/page_size 改为 offset/limit
POST /api/v1/rerunPOST /api/v2/worker-runs/{runId}/rerunrun_slug 移入 {runId}callback_url 保留在请求体中;V2 还支持 is_asyncoffsetlimit
POST /api/v1/run/result/exportGET /api/v2/worker-runs/{runId}/result/exportrun_slug 移入 {runId}format 和逗号分隔的 filter_keys 改用 query;删除 JSON 请求体。
POST /api/v1/task/runPOST /api/v2/worker-tasks/{workerTaskId}/runstask_slug 移入 {workerTaskId}callback_url 保留在请求体中;V2 还支持 is_asyncoffsetlimit
POST /api/v1/run/listGET /api/v2/worker-runs把筛选条件移入 query;scraper_slug 改为 worker_id;转换分页和数字状态;查询全部状态时省略 status
POST /api/v1/run/last/logGET /api/v2/worker-runs/{runId}/logV1 路径虽然包含 last,实际仍由请求体中的 run_slug 选择运行;将它移入 {runId} 并删除请求体。
POST /api/v1/scraper/abortPOST /api/v2/worker-runs/{runId}/abortrun_slug 移入 {runId}并删除请求体;V2 返回标准响应 envelope。
POST /api/v1/account/infoGET /api/v2/users/accountPOST 改为 GET,删除空 JSON 请求体;账户响应字段发生变化,需要更新反序列化模型。
范围V1V2迁移动作
认证api-key 请求头推荐 Bearer;也支持旧版请求头和 query token发送 Authorization: Bearer YOUR_API_KEY
资源名称请求概念使用 scraper路径和请求概念使用 worker重命名客户端模型和变量,但保留文档中的 scraper_* 响应字段。
标识符放在 JSON 请求体中workerIdworkerTaskIdrunId 放在路径中URL 编码路径值,并验证 V2 Worker 标识。
分页page_index 从 1 开始,使用 page_sizeoffset 从 0 开始,limit 最大 100使用 offset = (page_index - 1) * page_size
运行状态整数 15;筛选时 0 表示全部字符串 readyrunningsucceededfailedaborting替换数字判断;查询全部状态时不发送筛选值。
导出字段JSON 数组 filter_keysquery 中逗号分隔的 filter_keys用逗号连接字段名并进行 URL 编码。
导出格式文档列出 csvjson支持 csvjsonjsonlxlsxxlsxmlhtmlrss使用允许的小写值,不要沿用 V1 校验逻辑。
响应 envelopecodemessagedatacodemessagerequest_id,通常还有 datarequest_id 加入日志;允许文档指定的成功响应没有 data
参数校验主要记录 400401429还会使用 404422 和统一错误 envelope同时根据 HTTP 状态和业务 code 分支处理。
账户数据balancetraffictraffic_expiration_at当前契约示例提供 balancebalance_expiration_at不再要求已移除的流量字段,以账户接口 schema 为准。
运行日志V1 的日志列表项是结构化对象当前 V2 示例中的日志 list 是字符串数组按 V2 接口契约读取 data.list,不要复用 V1 日志项模型。
// V1 请求体
{ "run_slug": "RUN_ID", "page_index": 3, "page_size": 20 }
GET /api/v2/worker-runs/RUN_ID/result?offset=40&limit=20
// V1 请求体:status 3 表示 succeeded
{ "page_index": 1, "page_size": 20, "status": 3, "scraper_slug": "WORKER_ID" }
GET /api/v2/worker-runs?offset=0&limit=20&status=succeeded&worker_id=WORKER_ID
// V1 请求体
{ "run_slug": "RUN_ID", "format": "csv", "filter_keys": ["title", "address"] }
GET /api/v2/worker-runs/RUN_ID/result/export?format=csv&filter_keys=title%2Caddress

V2 还提供 Worker 发现和输入 schema、Worker 任务增删改查、账户级和 Worker 级最近运行快捷接口,以及独立的日志、结果、导出、中止和重跑接口。请查看公开接口清单,避免继续使用 V1 时代的变通实现。