Schema Source from Tabstack logo

Schema Source from Tabstack

认领

Schema Source from Tabstack 可将任意 URL 转为 JSON Schema、Zod 或 Pydantic 输出,适用于开发工作流。支持同一主机上的浏览器查看与 JSON API 访问,首次提取后可缓存结果。

Schema Source from Tabstack preview

概述

Schema Source from Tabstack 是一个基于网页的生成器,可将 URL 转换为结构化 schema。它面向需要从页面内容或布局而非手写模型中提取 JSON Schema、Zod schema 或 Pydantic 输出的开发者。

该产品将相同的 schema 页面同时提供为 HTML 和 JSON 端点。其文档展示了一个简单的 `/get/` 工作流:第一次请求会执行提取,后续请求会复用缓存结果,因此适合重复查询和基于 API 的使用。

核心功能

从任意 URL 生成 schema

通过 `/get/` 路径从任意 URL 生成 schema。首页展示了 Reddit、Techmeme、Zillow、Product Hunt 和 Amazon 等示例目标页面。

通过一个端点同时提供 HTML 和 JSON

每个 schema 页面都可通过内容协商或 `?format=json` 请求为 JSON,因此同一个端点既可用于浏览器查看,也可用于 API 调用。

缓存 schema 响应

文档显示,首次提取后即可从缓存响应中获取 schema 输出,从而避免后续请求重复执行上游提取工作。

多种 schema 格式

生成的页面提供多种输出格式,包括 JSON Schema、Zod 和 Pydantic,因此同一份提取结构可在不同技术栈中复用。

适合 API 的工作流

文档提供了 `curl` 和 `fetch` 的示例请求,便于将服务直接集成到脚本和应用中。

对支持页面进行模式检测

如果某个 URL 没有匹配到已学习的模式,响应会包含 `pattern: null`,表示该提取未映射到已知的网站模板。

常见用例

  • 将页面转换为 schema

    当你想要某个公开 URL 的 schema 表示,又不想手动建模页面结构时,可使用该服务。

  • 自动化获取 schema

    当你需要可通过程序获取的机器可读 schema 输出时,可在脚本或后端服务中使用 JSON 端点。

  • 为应用 schema 设定初始结构

    将生成的输出作为代码库中验证或类型化数据模型的起点,适用于依赖 Zod 或 Pydantic 的场景。

  • 复用已提取的 schema

    对你会反复查询的 URL 使用缓存结果,减少每次请求都重新执行提取的需要。

Pros and Cons

Pros

  • 支持三种常见的 schema 目标:JSON Schema、Zod 和 Pydantic。
  • 可用于任意 URL,而不只是固定的一组预定义来源。
  • 可根据请求头或查询字符串通过浏览器或 JSON API 使用。
  • 首次提取后会返回缓存结果,便于重复访问。
  • 同时提供了 `curl` 和 JavaScript fetch 语法的具体请求示例。

Cons

  • 首次请求新的 URL 可能需要几秒钟,因为提取会在结果缓存之前同步执行。
  • 文档表明某些 URL 可能无法匹配到已学习的模式,在这种情况下 `pattern` 为 `null`。

FAQ

我可以获取 JSON 而不是网页吗?

是。文档显示每个 schema 页面也都是一个 JSON 端点。你可以使用 `Accept: application/json` 请求同一个 `/get/` URL,或添加 `?format=json` 强制返回 JSON。

我需要对发送的 URL 进行 URL 编码吗?

不需要。文档说明你无需对发送的 URL 进行 URL 编码,尽管编码后的 URL 也可以工作。服务器会解码路径;如果解码失败,则回退到原始字符串。

我第一次请求一个 URL 时会发生什么?

第一次请求某个 URL 时会同步触发提取,可能需要几秒钟。之后结果会从缓存中提供。

支持哪些 schema 输出类型?

文档列出了 JSON Schema、Zod schema 和 Pydantic model 作为支持的输出。产品页面上也会在生成的 schema 页面显示这些输出选项卡。

有速率限制吗?

文档说明 `/get/*` 有按 IP 计算的速率限制,每分钟 60 次请求。响应包含 `RateLimit-Limit` 和 `RateLimit-Remaining` 标头,429 响应还会包含 `Retry-After`。

Quick Facts

类别
开发者工具
主要输出格式
JSON Schema、Zod、Pydantic
访问方式
同一主机上的 Web 界面和 JSON API
文档工作流
请求 `/get/<url>`;首次请求执行提取,后续请求使用缓存
速率限制
`/get/*` 每个 IP 每分钟 60 次请求
源 URL
schema.tabstack.ai