功能简介
AppBase 核心服务通过 /v1 REST API 暴露。每个 Action 独立声明 HTTP method/path、AuthType、Scope、参数校验、响应 Model 与事件/审计标签;调用者不能把某个接口接受 API Key 推广到所有接口。
当前支持范围
- REST API(SUPPORTED):核心服务通过版本化 REST API 暴露,每个接口单独声明认证类型、Scope 与响应模型。
适用场景
- 在没有目标语言 SDK 时直接接入 HTTP。
- 调试 SDK 实际发送的 method、path 与 payload。
- 为服务端集成设置精确 Scope 和超时。
前置条件
- 知道目标 endpoint 与 Project ID。
- 选择该 Action 允许的 Session、JWT、API Key 或 Admin 身份。
- 按 Content-Type 编码 JSON、multipart 或 query 参数。
Console 操作路径
Console 中的 API Reference/集成页面可辅助获取 Project 信息;控制面接口和数据面接口分别在对应服务页面操作。不要把浏览器 Network 中的 Console Cookie 复制到服务端脚本。
SDK 示例
SDK · TypeScript
import { Client, TablesDB } from 'appbase-node-sdk';
const client = new Client()
.setEndpoint('https://<APPBASE_HOST>/v1')
.setProject('<PROJECT_ID>')
.setKey('<API_KEY>');
const tables = new TablesDB(client);
const rows = await tables.listRows({
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
queries: []
});REST 示例
REST · Bash
curl 'https://<APPBASE_HOST>/v1/tablesdb/<DATABASE_ID>/tables/<TABLE_ID>/rows' \
-H 'X-Appwrite-Project: <PROJECT_ID>' \
-H 'X-Appwrite-Key: <API_KEY>' \
-H 'X-Appwrite-Response-Format: 1.9.0'常见错误
| 现象 | 处理建议 |
|---|---|
400 general_argument_invalid | 根据 Action 参数定义修正 JSON/query/form,不用字符串猜测错误。 |
401 user_unauthorized | 目标 Action 不接受当前身份,或凭据已失效。 |
403 general_access_forbidden | 认证成功但 Scope/Role/Permission 不足。 |
404 | 资源不存在或不可见;客户端按公开错误码处理。 |
500/503 | 保留基础设施错误并按幂等性重试,不归一化成业务 not found。 |
当前限制
- REST 接口覆盖面大于任一单一 SDK,但仍以当前 Commit 的 Action 为准。
- 错误 message 不是稳定程序契约;优先使用 status、type/code 和结构化字段。
- 开发环境的安全 Trace 不包含运行时 args;生产响应不新增 Trace。
Appwrite 兼容说明
REST /v1、Project Header 与常见认证头保持兼容;AppBase 自有 Action 仍遵循同一结构化声明方式。
AppBase 增强说明
AppBase 增强接口复用统一认证、Scope、响应 Model、审计和错误映射,而不是建立旁路鉴权。
发布状态和验证 Commit
origin/main 已核验。验证 Commit:0363062a1c7ea08741975bb5ba0c3361663c9353。
权威来源文件列表
backend-candidate:app/controllers/api/backend-candidate:docs/references/backend-candidate:src/Appwrite/Platform/Modules/*/Http/
Appwrite taxonomy 仅作信息架构参考:https://appwrite.io/docs/apis/rest。上游页面不是 AppBase 实现证据。