跳转到主要内容
Olostep的API是围绕对象设计的。理解这种设计有助于你构建更有效的集成。

一切皆对象

在Olostep中,每个资源都是一个具有唯一标识符的对象。无论你通过API、SDK还是仪表板创建它,你都会得到一个可以引用、更新和查询的对象。

单数路径 / 面向动作的API

虽然我们总是愿意在面向对象API设计的理念纯粹性上进行激烈而长久的争论 (在/crawls上进行POST应该创建一个crawl对象,而在/crawls/{crawl_id}上进行GET应该帮助你检索该对象并可能更新它——你总是可以更新元数据), 每个集合也会响应其单数名称:POST /v1/answer的行为与POST /v1/answers完全相同,GET /v1/scrape/{scrape_id}与GET /v1/scrapes/{scrape_id}相同,依此类推,适用于batch、crawl、map、search、schedule、monitor、file和feedback。 复数是规范形式,也是本参考文档记录的形式;单数是当你以动作而非对象思考时的别名。

对象可以有生命周期

一些Olostep对象通过status字段跟踪状态。这种状态机模式让你确切知道每个资源在其生命周期中的位置。

批次

批次有两个级别的状态:批次本身和单个项目。 批次状态:
批次级别的失败极为罕见。 批次几乎总是完成的——即使某些URL失败,批次本身也会达到completed状态。在极少数情况下,灾难性基础设施故障(例如,在丰富过程中LLM服务中断)可能导致批次失败。这影响不到0.01%的批次。
项目状态: 批次中的每个URL都作为一个单独的项目进行跟踪,并具有自己的状态: 项目可能因以下原因失败:
  • URL被阻止或返回错误
  • 解析器输出缺失
  • 网络/获取错误
失败的项目包含一个error对象,其中包含解释失败的code和message。批次仍然完成——在处理结果时检查每个项目的状态。

抓取

抓取总是完成的。 即使抓取发现0个URL(由于robots.txt阻止或无效的起始URL),抓取状态也将是completed。检查pages_count字段以验证结果。

监控

监控是具有比一次性资源更丰富生命周期的长期存在对象:
创建监控返回HTTP 202,状态为provisioning。一旦计划解决其跟踪目标,监控将变为active——轮询GET /v1/monitors/:monitor_id或使用?stream=1流式传输设置事件。只有active的监控可以暂停,只有paused的监控可以恢复。更新在监控仍然provisioning时返回409。

检索模式

许多对象生成的内容可以稍后检索。retrieve_id模式让你无需重新处理即可获取内容。
此模式用于:
  • 批次项目 — 每个处理的URL都有一个retrieve_id
  • 抓取页面 — 每个抓取的页面都有一个retrieve_id
/v1/retrieve端点接受formats参数以指定返回哪些内容类型(html、markdown、json、text)。

Webhooks:事件驱动的更新

与其轮询状态变化,不如配置webhooks以在对象状态变化时接收事件。

元数据:你的数据与我们的数据并存

使用元数据将自定义键值对附加到对象。这让你可以将Olostep资源链接到你的内部系统。

总结