# 通过 HTTP POST 执行 SQL
$ curl -X POST "...sqlite-1.../api/v1/sqlite/db"
?db=/data/app.db \
-d '{
"transaction": [{
"query": "SELECT product_id, COUNT(*) FROM orders GROUP BY product_id LIMIT 5"
}]
}'
# 带结果的响应
HTTP/1.1 200 OK
{
"success": true,
"results": [[
{ "product_id": 1, "count": 42},
{ "product_id": 2, "count": 38}
]]
}
无数据库服务器,无连接字符串,只需 HTTP。
执行 SQL,查看结果。
通过 HTTP 执行 SQL 查询、设置带 TTL 的键值对,以及原子递增计数器。
请求
POST /api/v1/sqlite/db?db=/data/app.db
{
"transaction": [{
"query": "SELECT product_id, COUNT(*) FROM orders GROUP BY product_id LIMIT 5"
}]
}
结果(5 行)
| product_id | COUNT(*) |
|---|---|
| 1 | 42 |
| 2 | 38 |
| 3 | 27 |
| 4 | 19 |
| 5 | 11 |
预计算示例结果。SELECT 查询按 product_id 分组。
查询结果即图表。
执行 SQL 查询,即时生成图表。可分享的 Base64 URL 可将实时数据嵌入仪表盘。
按产品的订单数
示例:SELECT product_id, COUNT(*) FROM orders GROUP BY product_id
KV 操作(ops/sec)
示例:24 小时内 SET 与 GET 操作吞吐量
可分享查询 URL
GET /api/v1/sqlite/query?db=/data/app.db&sql=U0VMRUNUIFN1bShjb3VudCkgRlJPTSBvcmRlcnM=
对任意 SELECT 语句进行 Base64 编码并分享只读查询 URL。任何人都可以查看实时数据——无写入权限,完全安全。
NoSQL 速度。SQL 可靠性。
原子操作、批量更新和时光机历史记录——全部以 SQLite 为底层,通过 HTTP 访问。
原子递增
无竞争条件地递增计数器。多个并发请求被原子串行化——计数器依次为 5 → 6 → 7,永远不会出现 5 → 6 → 6。
POST /api/v1/sqlite/kv/views:homepage/incr
{ "oldValue": 5, "newValue": 6 }
批量 100 个键
通过单次原子 HTTP 请求获取、设置或删除最多 100 个键。全部成功或全部失败——比逐个请求快 100 倍。
POST /api/v1/sqlite/kv/batch/set
{ "success": true, "count": 100 }
TTL 自动过期
为任意键设置 TTL,过期后自动删除。适合会话、缓存和 Token——无需清理任务。
PUT /api/v1/sqlite/kv/session:abc?ttl=3600
{ "success": true, "key": "session:abc" }
时光机历史记录
每次键变更都被记录。查看历史记录,在任意时间戳快照值,或即时回滚到上一状态。
GET /api/v1/sqlite/kv/config:timeout/history
{ "history": [...], "total": 12 }
HTTP 胜过连接字符串。
Hoody SQLite 消除了传统数据库服务器的运维开销,数据库就是一个 URL。
| 功能 | Hoody SQLite over HTTP | Postgres |
|---|---|---|
| 服务器安装 | None needed | Server process |
| 连接字符串 | Just a URL | Host/port/user/pass |
| 语言驱动 | Any HTTP client | pg, mysql2 |
| AI 智能体访问 | Driver required | |
| 时光机 | Manual migrations | |
| 原子 KV 操作 | incr/decr/push/pop | App-level only |
| 可分享 URL | ||
| 多容器并发 | FUSE mount | Pool per service |
23 个端点。SQL 和 KV,通过 HTTP。
执行 SQL 查询、读写键值对、执行原子批处理、查询时间旅行历史——全部在单一数据库连接上。
SQL Operations
{count, plural, =1 {# 个端点} other {# 个端点}'}POST .../api/v1/sqlite/db → {results: [{changes: 1}]}
KV Core
{count, plural, =1 {# 个端点} other {# 个端点}'}GET .../api/v1/sqlite/kv/session-abc → {value: "...", metadata: {'}'}
Atomic & Batch
{count, plural, =1 {# 个端点} other {# 个端点}'}POST .../api/v1/sqlite/kv/counter/incr → {value: 6, oldValue: 5}
Time-Travel
{count, plural, =1 {# 个端点} other {# 个端点}'}GET .../api/v1/sqlite/kv/price/history → [{op: "set", value: 99}]
数据库所需的一切,仅此而已。
完整的数据库工具包:SQL 事务、键值存储、原子操作、批量处理和时光机——全部通过 HTTP。
Web 数据库 UI
浏览器中的可视化 SQL 查询界面。执行查询、浏览 Schema、以表格格式查看结果——无需本地工具。
SQL 事务
通过 HTTP POST 执行原子 SQL 事务。单次请求支持多条语句、参数化查询和批量插入。
键值存储
SQLite 上的 NoSQL 风格 GET/SET/DELETE 操作,适合配置、会话、缓存和功能标志。
原子操作
线程安全的 incr、decr、push 和 pop。无竞争条件,在任意并发级别下均能正确工作。
批量操作
在单次原子请求中获取或设置最多 100 个键。全有或全无语义,比逐个请求快 100 倍。
SQLite Drive FUSE
将数据库存储在 /hoody/databases/ 以供多容器访问,通过宿主机级别 FUSE 挂载保证并发写入安全。