使用控制台 SDK
这个SDK目标为Appwrite服务器版本2.7.x被运出Appwrite Cloud. 自营发布可落后于Cloud——如果运行自营的旧建筑,使用相匹配的自营的旧SDK 以往版本 当APIs不同时.
Appwrite是一个开源后端,作为服务服务器,在非常简单的使用REST API的背后,摘要并简化了复杂而重复的开发任务. Appwrite旨在帮助您更快和更安全地开发您的应用程序. 使用 Console SDK 将您的应用程序与 Appwrite 服务器集成,以方便地开始与 Appwrite 后端的 API 和工具进行互动. API 完整文档和教程 https://appwrite.io/docs (英语)

安装
无
npm install @appwrite.io/console
导入所需的模块 。 包件船ES模块,C通JS和TypeScript类型:
import { Client, Account } from '@appwrite.io/console';
光盘N
每一份发行都向 https://sdk.appwrite.io/console/21.0.0/。 。 。 .
ES模块
每个服务,助手和enum都是自己的模块,因此浏览器只下载所导入的内容. 服务在kebab案件中以其名义提供,例如: TablesDB 从 tables-db.js,然后在 enums/,例如 OAuthProvider 从 enums/o-auth-provider.js。 。 。 . index.js 重新输出所有的东西, 所以导入它加载每个服务:
<script type="module">
import { Client } from 'https://sdk.appwrite.io/console/21.0.0/client.js';
import { Account } from 'https://sdk.appwrite.io/console/21.0.0/account.js';
import { OAuthProvider } from 'https://sdk.appwrite.io/console/21.0.0/enums/o-auth-provider.js';
</script>
脚本标签
在使用 SDK 的代码之前添加脚本 。 它暴露了全球所有出口 Appwrite 对象 :
<script src="https://sdk.appwrite.io/console/21.0.0/sdk.min.js"></script>
<script>
const { Client, Account } = Appwrite;
</script>
次级资源完整性
integrity.json 在同一目录地图中 .js 转到它的 sha384- 散货 一个 integrity 属性检查只检查它所设置的文件. sdk.min.js 是一个单一的文件,所以它的散列像 integrity 属性,连同 crossorigin="anonymous"覆盖整个SDK. ES模块导入其他模块和共享块,从而通过 integrity 字段以覆盖这些区域.
日记
脚本标签构建也可以从jsDelivr获得:
<script src="https://cdn.jsdelivr.net/npm/@appwrite.io/[email protected]"></script>
开始
添加网络平台
在 Appwrite Console 中,打开您的项目和下面 添加一个平台 选择 网络应用。输入您的应用程序运行在的主机名 : localhost 用于本地开发, 以及您部署后的生产领域。 仅接受注册为平台的主机名的浏览器请求,因此一个缺失的主机名作为CORS错误出现.
初始化客户端
从您的项目中复制您的端点和工程ID 设置 页 次.
import { Client } from '@appwrite.io/console';
const client = new Client()
.setEndpoint('https://<REGION>.cloud.appwrite.io/v1')
.setProject('<PROJECT_ID>');
用于自备的 Appwrite, 使用 https://<HOSTNAME>/v1 作为终点.
提出第一个要求
从客户端创建服务并调用其任何方法 。 每一种方法都取出一个命名参数的单个对象并返回一个承诺. 见 API 参考 每一个服务和方法.
import { Account, ID } from '@appwrite.io/console';
const account = new Account(client);
const user = await account.create({
userId: ID.unique(),
email: '[email protected]',
password: 'password',
name: "Walter O'Brien",
});
console.log(user);
与 OAuth 签名
启用控制台下的提供者 认证 > 设置,然后将用户重定向到它。 这个 success 财务报告和审定财务报表 failure URL必须位于您注册为平台的主机名上.
import { Account, OAuthProvider } from '@appwrite.io/console';
const account = new Account(client);
account.createOAuth2Session({
provider: OAuthProvider.Github,
success: 'https://example.com/success',
failure: 'https://example.com/failure',
});
型号安全
返回行的方法,例如 listRows 财务报告和审定财务报表 getRow,接受对您自己的行形状的类型参数:
import { TablesDB, type Models } from '@appwrite.io/console';
interface Book extends Models.Row {
name: string;
author: string;
releaseYear?: string;
genre?: string[];
isCheckedOut: boolean;
}
const tablesDB = new TablesDB(client);
const result = await tablesDB.listRows<Book>({
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
});
for (const book of result.rows) {
console.log(`${book.name} by ${book.author}`);
}
在JavaScript中,通过JSDoc可以提供相同类型:
import { TablesDB } from '@appwrite.io/console';
const tablesDB = new TablesDB(client);
/**
* @typedef {import('@appwrite.io/console').Models.Row & {
* name: string,
* author: string,
* isCheckedOut: boolean,
* }} Book
*/
/** @type {import('@appwrite.io/console').Models.RowList<Book>} */
const result = await tablesDB.listRows({
databaseId: '<DATABASE_ID>',
tableId: '<TABLE_ID>',
});
这个 申请CLI 可以从您的数据库计划中生成这些界面 appwrite types。见 类型生成。 。 。 .
处理错误
请求失败 AppwriteException 与 message, (中文(简体) ), code, (中文(简体) ), type 财务报告和审定财务报表 response 属性.
import { AppwriteException } from '@appwrite.io/console';
try {
const user = await account.get();
console.log(user);
} catch (error) {
if (error instanceof AppwriteException) {
console.error(error.code, error.type, error.message);
}
}
这个 响应代码 页面列出每个错误类型.
学多点
捐款
此库由 Appwrite 自动生成 SDK 生成器。为了了解更多如何帮助我们改进这个SDK,请检查 捐款指南 在发出拉动请求之前.
许可证
请看 BSD-3-休闲许可证 文档以获取更多信息.