SSE 元数据访问

以 Markdown 格式查看

当您的 API 使用服务器发送事件时,迭代生成的 SDK 流式响应会产生解析后的数据对象。要同时读取 SSE 协议字段——事件 ID、事件类型和重试间隔——TypeScript 和 Go SDK 提供了元数据感知的迭代,通常用于通过事件 ID 恢复流

元数据感知迭代

每个事件在其协议字段旁暴露解析后的数据。默认迭代不变,因此选择加入完全向后兼容。

1const stream = await client.plants.stream({ query: "fern" });
2
3for await (const event of stream.withMetadata()) {
4 event.data // 解析的响应对象(与默认迭代类型相同)
5 event.id // SSE 事件 ID(string | undefined)
6 event.event // SSE 事件类型(string | undefined)
7 event.retry // SSE 重试间隔(毫秒)(number | undefined)
8}

withMetadata() 需要 TypeScript SDK 生成器版本 3.73.0+,RecvEvent() 需要 Go SDK 生成器版本 1.32.0+。

流恢复

事件 ID 可用于通过标准 Last-Event-ID 头恢复流:在迭代时存储最后收到的 ID,然后在重新连接时将其传回服务器。这需要服务器端支持 Last-Event-ID 头。