Schema Source from Tabstack icon

Schema Source from Tabstack

Schema Source from Tabstack 可将网址生成 JSON Schema、Zod schema 或 Pydantic 模型,适合需要从已知页面模式获取结构化输出并使用文档化 JSON 端点的开发者。

Schema Source from Tabstack

概述

Schema Source from Tabstack 是一个 URL 转 schema 生成器,可从页面中提取结构化数据,并将其呈现为 JSON Schema、Zod 或 Pydantic 输出。主页将其定位为可从任何 URL 生成 schema 的方式,而文档则显示每个 schema 页面同时也是一个 JSON 端点。

该产品面向需要页面内容的程序化表示的开发者。它可以为已知 URL 模式返回缓存的 schema 数据,并支持浏览器访问、HTTP 内容协商以及文档化的 JSON 响应结构,便于 API 消费。

特性

生成多种 schema 格式

将一个 URL 转换为学习到的 schema,并根据页面视图和 API 请求将结果返回为 JSON Schema、Zod 或 Pydantic 输出。

HTML 与 JSON 双重交付

同一个 `/get/...` 页面同时为浏览器提供 HTML、为 API 客户端提供 JSON,因此文档和 API 访问位于同一主机上。

缓存 schema 响应

Schema 页面提供带缓存结果的 JSON 端点,这使得重复请求可以复用之前提取的 schema。

面向 API 使用的内容协商

文档展示了如何通过浏览器友好的 `?format=json` 查询参数或 `Accept: application/json` 请求头来获取 schema。

基于模式的 URL 提取

支持示例包括 `reddit.com/r/[subreddit-name]` 和 `producthunt.com/products/[product-slug]` 这类模式,表明该工具会从已知站点结构中学习特定 URL 的 schema。

使用场景

  • 为特定页面数据生成 schema

    当你需要用于后续处理或校验的机器可读 schema 时,可从已知 URL 模式中提取结构化数据。

  • 将 schema 查询集成到应用中

    从代码中调用 JSON 端点,获取针对同一 URL 的重复请求所需的缓存 schema 输出。

  • 基于文档化 API 开发

    在将端点接入客户端或自动化流程之前,先查看文档化的响应结构、错误代码和速率限制。

  • 处理已学习的站点模式

    在映射站点特定页面时,可将这些模式示例作为参考,例如子版块列表或 Product Hunt 产品页面。

Pros and Cons

Pros

  • 可直接从 URL 生成结构化 schema 输出,而无需手动建模。
  • 支持多种输出样式,包括 JSON Schema、Zod 和 Pydantic。
  • 网页和 JSON 端点使用同一主机,访问更简洁。
  • 对重复请求返回缓存结果,减少重复提取工作。
  • 对错误、速率限制和响应结构有清晰文档,便于 API 集成。

Cons

  • 源内容只展示了少量示例模式,因此支持站点的范围在此并未完全文档化。
  • 采集到的页面文本中没有显示价格信息,因此仅凭这些证据无法确定其商业模式。
  • 文档说明首次请求可能需要几秒钟,因为提取是同步进行的。

FAQ

如何获取 JSON 而不是网页?

浏览器会从同一主机接收 HTML,而 API 客户端可以通过添加 `?format=json` 或发送 `Accept: application/json` 来请求 JSON。查询字符串优先于请求头。

我需要对输入的 URL 进行 URL 编码吗?

不需要。服务器会使用 `decodeURIComponent` 解码 URL 路径,如果解码失败,也会回退到原始字符串。

当某个 URL 还没有被抓取时会发生什么?

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

有速率限制吗?

`/get/*` 端点按每个 IP 每分钟限制 60 次请求。响应会包含 `RateLimit-Limit` 和 `RateLimit-Remaining`,而 429 响应会包含 `Retry-After`。

API 可能返回哪些错误?

错误响应使用统一格式:`{ "error": { "code", "message" } }`。已文档化的代码包括 `BAD_URL`、`RATE_LIMITED`、`EXTRACTION_FAILED`、`UPSTREAM_UNAVAILABLE` 和 `EXTRACTION_TIMEOUT`。

Quick Facts

类别
开发者工具
主要输出
JSON Schema、Zod 和 Pydantic
访问方式
同一主机上的网页和 JSON 端点
来源域名
schema.tabstack.ai
支持的示例模式
Reddit 子版块页面和 Product Hunt 产品页面
价格
采集到的页面文本中未说明