查看类别

数据库 REST API:将任何 SQL 查询转换为端点

数据库 REST API · 中心

任何 SQL 查询 变成一个 REST API 端点

在查询生成器中针对 59 个连接器中的任意一个编写查询,然后单击 新端点这样,您就可以在 api.querystreams.com 上获得一个带有专属密钥的 URL。SQL 语句在已部署到您数据上的代理程序上以只读方式运行;调用者会收到 JSON 或 CSV 格式的数据,而不会看到 SQL 语句、架构或凭据。无需托管服务器,无需开放端口,所有套餐(包括免费套餐)均包含此功能。本页为概述;每个连接器都有其专属指南,详见下方。

从已保存的查询算起大约需要 90 秒 没有服务器可供托管 数据保留在您的网络上 每个来电者一个密钥,可随时撤销
遇到任何问题?尽管问我们。 打开 支持 请在“查询流”(右上角菜单 → 支持)中给我们发送消息。我们会安排专人阅读您的消息,“我不知道这个屏幕需要什么”就是一个很好的问题。

你最终会得到什么

这是一个 URL,持有密钥的用户可以通过它访问已保存查询的行数据。在分享此 URL 之前,请先在门户网站的控制台中进行测试。例如:

邮政api.querystreams.com/v1/endpoints/8f2c4d1e-6b3a-4f7e-9c21-5d0a7b3e2f19
钥匙价值描述
城市 字符串 选修的西雅图从已保存的查询中调用过滤器
X-API密钥qsapi_AB••••••••••你的秘密令牌
{
  “城市”: “西雅图”
}
标题价值描述
X-API密钥qsapi_AB••••••••••您的秘密令牌。每位来电者限用一个,可随时撤销。
内容类型application/json参数以 JSON 正文的形式传递。
接受application/json返回 JSON 格式;请求 text/csv 格式,则返回 CSV 格式。
curl -X POST "https://api.querystreams.com/v1/endpoints/8f2c4d1e-6b3a-4f7e-9c21-5d0a7b3e2f19" \ -H "X-API-Key: qsapi_YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"city": "Seattle"}'
现状 200 OK时间 84毫秒尺寸 412 B截断 不
{
  “列”: [ { “姓名”: "customer_id", “类型”: 整数 }, { “姓名”: “姓名”, “类型”: “细绳” }, { “姓名”: “城市”, “类型”: “细绳” } ],
  “行”: [
    { "customer_id": 1042, “姓名”: “北风贸易公司”, “城市”: “西雅图” },
    { "customer_id": 1057, “姓名”: “高山装备店”, “城市”: “丹佛” },
    { "customer_id": 1063, “姓名”: “港口食品”, “城市”: “哈利法克斯” }
  ],
  “元”: { 行数: 3, "agent_duration_ms": 41, "request_id": "req_7Hq2mKd9" }
}
标题价值描述
内容类型application/json; charset=utf-8正文选项卡上的信封
内容长度412返回的字节数;上方“大小”徽章
只读:仅保存一个查询,没有其他内容 SQL 永远不会离开您的帐户 “活动”选项卡上的每次通话

大多数将 REST API 集成到数据库的工具,例如 PostgREST、Hasura、DreamFactory、Directus 以及你自己编写的框架,都会暴露数据库模式:每个表都成为一个端点,调用者可以浏览这些数据。而 Query Streams 则恰恰相反。一个已保存的查询就能精确定义端点返回的内容。调用者只能获取这些行,而无需了解它们的生成方式。你也无需运行 API 服务器,因为你已有的 Agent 会执行查询,而 api.querystreams.com 会处理 HTTP 请求。

数据库的存放位置您的办公网络或服务器机房您自己的数据库保留在您的网络上查询流代理运行已保存的查询api.querystreams检查钥匙HTTPS · 仅行,绝不涉及 SQL持有钥匙的人你的应用、控制面板、合作伙伴、脚本使用 X-API-Key 进行 GET 或 POST 请求JSON、CSV 或 NDJSON 返回
代理程序会访问您的数据并执行查询。api.querystreams.com 会检查密钥和速率限制,并将数据行传递给 api.querystreams.com。调用方无需访问您的网络。

你需要准备什么

查询流帐户

每个套餐都提供 REST API。免费套餐提供一个端点、两个键,每次调用最多可发送 250 行数据,足以构建本指南。立即注册! my.querystreams.com.

计算机上的代理程序可以访问您自己的数据库,并且已添加连接。

通常是数据库服务器本身,或者同一网络上的始终在线的计算机。

查询生成器中已保存的查询

该端点仅封装一个已保存的查询。编写 SELECT 语句,运行一次,然后保存。添加动态筛选器( @variable 在 WHERE 子句中)如果调用者应该能够进行筛选。

谁可以创建端点? 所有者、管理员和创建者。如果 API 您的顶部栏缺少某个项目,管理员可以为您的用户启用它。 账户 → 权限任何与您共享端点的人只需要一个 Query Streams 帐户,任何套餐均可。

分四步完成设置

  1. 保存查询

    在 查询生成器 选择一个连接,编写 SELECT 语句并运行一次。 @variable WHERE 子句中的参数会变成 API 参数:

    已保存的查询 · 包含一个动态筛选器
    选择 客户ID、姓名、城市
    从 客户
    地点 城市 = @city
    命令 经过 姓名;

    点击 节省;该名称将成为端点的显示名称。

  2. 创建端点

    打开 API 在顶部栏中,点击 新端点,以及在 选择查询 点击您保存的查询。点击 下一页.

  3. 配置并锁定参数

    在 配置 保持 寿命 永恒的, 响应模式 静态和 内页格式 第一个端点的 JSON 格式;模式和格式一旦创建就固定下来。 锁定参数 离开 城市 作为 可调用,或 锁 将其设置为调用者无法更改的固定值。点击 下一页.

  4. 分享即可获得您的钥匙

    邀请 人们 通过电子邮件添加 服务密钥 点击获取工具,或者暂时跳过,然后点击 创建并获取我的密钥复制以 开头的 49 个字符的密钥 qsapi_;之后可以从……中再次揭示。 共享 点击标签。 发送 在控制台中发起第一次调用。

就是这样。 查询结果会以只读方式返回给您提供的密钥的 URL。以下每个连接器指南都遵循相同的四个步骤,但会使用该连接器自身的 SQL 语句以及它特有的注意事项。

无论从哪里拨打电话

将端点 ID 替换为您自己的 ID。 qsapi_YOUR_KEY 用你的钥匙:

GET · 查询字符串中的参数
curl "https://api.querystreams.com/v1/endpoints/8f2c4d1e-6b3a-4f7e-9c21-5d0a7b3e2f19?city=Seattle" \ -H "X-API-Key: qsapi_YOUR_KEY"
响应 · 200 OK · application/json
{
  “列”: [ { “姓名”: "customer_id", “类型”: 整数 }, { “姓名”: “姓名”, “类型”: “细绳” }, { “姓名”: “城市”, “类型”: “细绳” } ],
  “行”: [
    { "customer_id": 1042, “姓名”: “北风贸易公司”, “城市”: “西雅图” },
    { "customer_id": 1057, “姓名”: “高山装备店”, “城市”: “丹佛” },
    { "customer_id": 1063, “姓名”: “港口食品”, “城市”: “哈利法克斯” }
  ],
  “元”: { 行数: 3, "agent_duration_ms": 41, "request_id": "req_7Hq2mKd9" }
}

返回的行是以列名为键的对象,包含列列表和一个 元 该信息块会告诉你有多少行数据、结果是否被截断以及你可以引用的请求 ID。与 POST 请求相同的操作会将参数放在 JSON 正文中,这对于较长的值列表来说是合适的选择:

POST 请求 · JSON 请求体中的参数
curl -X POST "https://api.querystreams.com/v1/endpoints/8f2c4d1e-6b3a-4f7e-9c21-5d0a7b3e2f19" \ -H "X-API-Key: qsapi_YOUR_KEY" \ -H "Content-Type: application/json" \ -d '{"params": {"city": "Seattle"}}'
格式=csv
格式为 CSV 而非 JSON,包含表头行。 接受:文本/CSV 也一样。流式端点返回 NDJSON(每行一个 JSON 对象),并以结尾结尾。 {"_summary": true, "row_count": N} 检查最后一行。
?sample=true
最多五排,不计费。适合给客户接线。
压缩=lz4
适用于高流量呼叫者的 LZ4 框架机身,配备解码器; 代码 选项卡中包含每种语言的解码器代码片段。客户端发送文件时,会自动进行纯 gzip 压缩。 Accept-Encoding: gzip.
授权:Bearer qsapi_…
被接受为别名 X-API密钥. 在浏览器代码中使用它。

它的插头在哪里

Excel 和 Power BI

导出 → Power Query M (.pq) 它会提供一个现成的查询。将其粘贴到高级编辑器中(Excel:数据 → 获取数据 → 来自其他来源 → 空白查询;Power BI:主页 → 转换数据 → 新建源 → 空白查询),并将占位符替换为您的查询语句。 qsapi_ 钥匙。

邮递员、失眠、跳房子

相同 出口 菜单下载 Postman v2.1 集合、Insomnia v5 导出或 Hoppscotch 集合,其中参数已填写完毕,并包含密钥占位符。

你自己的代码

这 代码 该选项卡包含 cURL、Python、JavaScript、TypeScript、Java、C#、Go、PHP、PowerShell 和 Ruby 的工作示例。 导出 → OpenAPI 3.1 规范 可为任何客户端生成器或 Swagger UI 提供数据。

n8n、Zapier、Make、cron

创建一个 服务密钥 对于该工具,请将 URL 和密钥粘贴到其 HTTP 节点中,并进行调度。每个工具都有自己的密钥,因此您可以撤销其中一个工具的密钥而不会影响其他工具。

按连接器指南

Query Streams 支持的所有连接器都可以以这种方式发布。请选择您需要的连接器:

你运行的数据库

数据仓库

托管数据库

文件和日志文件夹

SaaS 和 API 连接器

消费者指南: 通过 Power Query M 集成 Power BI 和 Excel.

这些计划允许什么?

计划终点每个端点的键每个端点的人数每次调用行数(静态)每次调用(流式传输)的行数每分钟按键通话次数
免费1212502503
个人核心2325,000250,00015
个人加强版55510,000500,00030
核心业务5101050,0001,000,000300
商务+102025100,0005,000,000600
商业最大253050250,00010,000,000600
企业核心5050100500,00025,000,0001,000
企业增强版1001002501,000,00050,000,0001,000
企业版 Max2502005002,500,000100,000,0001,500

每次调用都有固定的 60 秒查询超时时间和 8 MiB 的响应大小上限,返回的数据量会计入您套餐的每月数据流量限额,与 Excel 和 Google Sheets 插件使用的限额相同。免费套餐只有一个端点,每月 5 MB 流量,足以满足每天多次调用的小型表格的需求。 请查看定价页面 按计划发放津贴。

免费是一种你可以坚持的计划。 这不是一份会过期的试用期。请查看以下内容,了解具体包含哪些内容。 定价页面.

确保安全

SQL 代码仍然归您所有。

调用者只能获取数据行。他们看不到查询语句、表名或连接详情,也无法更改端点运行的内容。

一个密钥,一个端点,一个呼叫者

一个密钥只能对应一个终端。给每个人或工具分配一个密钥,每次调用都会被记录到该密钥下。撤销其中一个密钥,其他密钥仍然有效;撤销操作大约会在五分钟内生效。

只读,在你这边的墙里

代理程序仅运行已保存的 SELECT 查询,不会执行其他任何操作,它在您的网络内部,通过自身的出站连接运行。无需打开任何端口,也无需在互联网上提供任何凭据。

账簿中的每一次通话

这 活动 该标签页显示每次呼叫的时间、接收方、状态、行数、字节数和持续时间,包括被拒绝的呼叫。设置一个 即将到期 临时共享的生命周期以及端点会在指定日期自动关闭。

当某些事情不起作用时

现状代码该怎么办
401API密钥已要求 / API密钥无效缺少标头或密钥错误。发送 X-API-Key:qsapi_…全部49个字符。密钥可以从终端的“共享”选项卡中再次复制。
403API_KEY_ENDPOINT_MISMATCH在不同的端点上使用的有效密钥。每个密钥都属于一个端点。
403API密钥已撤销 / API端点已过期密钥已被撤销或端点已过期。请生成新密钥或恢复端点。
400API_PARAM_NOT_OVERRIDABLE您发送了一个参数,但其所有者未将其标记为可调用。请求体列出了允许的名称。
414API 查询过大GET 请求字符串传递了 8 KB 或 200 个列表值。请将相同的参数作为 POST 请求的 JSON 正文发送。
413API 输出过大结果超过了 8 MiB 的上限。请缩小查询范围,或将端点切换为流式传输。
429API_RATE_LIMITED这分钟内对密钥或端点的呼叫过多。请稍候。 重试后 秒,或举 利率限制 在 API 设置 → 套餐默认设置下。
429API_DATA_REALM_EXHAUSTED用户每月的数据流量已用完。流量将在下个月结算时重置;如需更多流量,请升级套餐。
503API代理未连接您数据库背后的代理已离线。请在“数据”→“数据代理”下检查;代理重新连接后,调用将再次成功。
504API 查询超时查询耗时超过 60 秒。请添加筛选条件或索引,或者保存更精确的查询语句。

每个错误体都有其形状 {"error": {"code": "…", "message": "…"}} 每个回应都包含一个 X-QS-请求-ID 邮件头。在联系客服时,请将 ID 号括起来。

人们提出的问题

我的数据会被复制到查询流吗?

不。代理程序会运行查询,查找您的数据,并仅发送调用请求的行。期间不会进行任何同步或缓存;每次调用都会运行查询。

用户能否修改 SQL 语句或要求添加其他表?

不。一个端点只会运行一个已保存的查询。调用者只能设置您标记的参数。 可调用并且这些值被安全地绑定:文本被引用和转义,数字被范围检查,列表被展开。

我该如何把这个交给我的搭档?

在端点上 共享 选择标签 人们 然后输入他们的邮箱地址。他们会收到一个神奇的链接,使用该地址登录(免费账户即可),并生成自己的密钥;您可以在“活动”选项卡上按名称查看他们的调用记录。对于服务器或自动化工具,请创建一个 API密钥 改为贴上标签。

当我编辑已保存的查询时会发生什么?

该端点会在下次调用时运行新的 SQL 语句,并重新生成其 OpenAPI 规范。URL 和键值不会改变。如果您添加或删除过滤器,请重新访问该端点。 锁定参数 这样,来电者就能看到正确的参数。

免费套餐真的包含这些吗?

是的。免费版是永久有效的,不是会过期的试用版。它包含一个端点、两个密钥,每次调用最多可处理 250 行数据。请查看具体包含内容。 定价页面.

这与 PostgREST、Hasura 或 DreamFactory 有何不同?

这些方法会将您的模式暴露为 API,并由您自行托管。在这里,一个已保存的查询对应一个端点,SQL 和模式保持私有,而且无需托管任何内容:您已运行的代理会执行查询,而 api.querystreams.com 则提供 HTTP 请求、密钥、速率限制和账本服务。

一个端点能否连接来自两个数据库的数据?

是的。在查询构建器中保存联合(跨源)查询并将其公开;联合端点以静态模式运行。

我可以直播大量结果吗?

选择 流媒体 创建端点时,响应模式即为此设置。数据行以 NDJSON 或 CSV 格式分块到达,直至达到您套餐的流式传输行上限,并在末尾附有汇总行。

还是不行? 打开 支持 请在“查询流”中告诉我们您当前处于第几步以及您看到的内容。我们会帮您连接。

Setup trouble?

  • Agent shows Offline, or Test connection and Browse are greyed out? Check that the Agent is online → Is the Agent online?
更新 2026 年 9 月 27 日

Powered by BetterDocs