Bmob 数据库 REST API
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_92a793e0/bmob-database-restful。
技能介绍
什么时候该用 REST 而不是 SDK
你的场景可能是 Go/Rust 后端、数据迁移脚本、Serverless 函数,或只是想在 Bash 里 curl 一把——只要环境能发 HTTP,就不该被某一种 JS SDK 绑死。Bmob 的 REST 层把表操作、用户系统、文件上传都暴露成固定形态的 URL 与 JSON body;本技能把控制台里容易漏掉的约定(域名、/1/ 版本号、Header 鉴权、query 编码)整理成可照着写的参考。
技能覆盖的核心能力
- URL 与鉴权:基址一般为
https://api.codenow.cn/1/;简易授权用X-Bmob-Application-Id+X-Bmob-REST-API-Key(服务端、脚本、与 JS SDK 方式 B 一致);浏览器直连 REST 时更宜 Secret Key + MD5 签名(6 个头部,见shared/md5-sign-algo.md),避免 REST API Key 被抓包复用。 - 读写约定:
POST/PUT必须Content-Type: application/json;GET的where/order/limit/skip等 query 需 URL encode;默认返回 10 条,上限 1000,大结果用分页或count=1。 - 操作面:类表 CRUD、原子计数器、
/1/batch(单次 ≤50,子请求独立成败不回滚)、Pointer/Relation/Date/File/GeoPoint 的__type字段、用户接口与/2/files/二进制上传。 - 排错与联动:常见 HTTP/
code对照表;若已配 Bmob MCP,优先用generate_code生成 curl,减少手写 where 与 Header 过时。
适用边界与安全注意
REST API Key 可以用于前端(与 3.0 SDK 方式 B 一致),但公开 bundle 里仍易被抓包,生产浏览器/小程序优先 SDK 方式 A 或加密授权、或自建 BFF。Master Key 仅服务端、X-Bmob-Master-Key 勿下发客户端;Key 走环境变量;写操作表需配 ACL(body 可带 "ACL": {...});生产必须 HTTPS;批量与 QPS 超限会返回明确错误码。
使用场景
- Go 或 Rust 服务要把业务对象写入 Bmob 指定 class,部署环境无法使用 JS SDK,只能按文档拼 Application Id 与 REST API Key 发 HTTP。
- 离线迁移脚本用 Python `requests` 对 `where` 分页查询源数据,再 `POST` 到 `https://api.codenow.cn/1/classes/表名` 批量落库。
- Serverless 冷启动里用 `GET` 带 `limit`/`skip` 拉列表,并对某字段调用 `/1/increment` 做原子计数更新。
- 小程序或 H5 必须手写 REST、不能暴露 REST API Key,需按 `shared/md5-sign-algo.md` 生成签名头再调查询与写接口。
适合人员
- 维护非 Node 后端、要把 Bmob 当远程表存储并通过固定 `/1/` URL 做 CRUD 的后端工程师
- 负责一次性数据搬迁、需要 batch(≤50)与子请求独立成败、以及 Pointer 等 `__type` 字段格式的迁移开发
- 在云函数或 Edge 运行时集成 Bmob、需要查清 `where` URL encode 与默认 10 条分页上限的全栈开发
- 浏览器/小程序侧必须直连 REST、要在简易授权与 MD5 加密授权之间做选型并落实 ACL 的安全相关开发