Appwrite是面向前端和移动开发人员的新型开源 ,端到端后端服务器,可让您更快地构建应用程序。 Appwrite的目标是抽象和简化REST API和工具背后的常见开发任务,以帮助开发人员更快地构建高级应用程序。
在这篇文章中,我将简要介绍一些主要的Appwrite服务,并解释它们的主要功能以及它们的设计方式,以帮助您比从头编写所有后端API更快地构建下一个项目。
Appwrite服务器打包为docker容器,您可以使用本地计算机或云提供商的终端上的简单docker-compose命令轻松设置。
mkdir appwrite-ce && \
cd appwrite-ce && \
curl -o docker-compose.yml https://appwrite.io/docker-compose.yml && \
docker-compose up -d --remove-orphans
通过Appwrite身份验证服务,您可以轻松管理用户注册并登录到您的应用程序。 Auth服务还提供与Facebook,Github,LinkedIn等多个OAuth提供程序的内置集成。
除了管理对您的应用及其不同资源的访问控制之外,Auth服务还抽象了其他重复任务,例如管理用户电子邮件确认和密码恢复。
使用Auth服务,您可以节省大量时间和构建稳定,安全的用户身份验证和授权系统所需的时间,该系统还必须与多种第三方登录方法集成。
Appwrite帐户服务使用API公开您的客户端,该API允许您与当前登录的用户帐户进行交互。
帐户服务使您的用户可以更新与帐户相关的信息,并保存其个人偏好设置,例如用户界面语言,时区或喜欢的主题。 您可以根据自己的喜好设置用户。
您还可以使用API获取用户活动会话的列表,包括有关会话位置,设备,操作系统和用户代理的信息。 使用API安全日志端点,您可以让您的用户查看其最新登录信息,密码恢复以及其他对安全性敏感的事件。
Appwrite数据库服务使您可以直接从客户端应用程序(无论是浏览器还是本机应用程序)与用户和应用程序数据集成。 数据库中的每个文档都可以嵌套其他子文档。 使用Appwrite数据库过滤器,您可以应用高级查询并过滤嵌套的文档集合。
每个文档都可以设置对特定用户,一组用户,API密钥或用户角色的读写权限。 使用简单但灵活的权限机制 Appwrite Database,您可以管理应用程序的复杂和复杂的访问控制逻辑。
Appwrite数据库还使您可以灵活地在结构化数据收集或灵活收集之间进行选择,以随时管理数据。 使用Appwrite,简单而强大的数据集合,您可以为集合中的每个文档强制执行数据结构和验证规则。
Appwrite存储服务是让您或您的应用程序用户安全,简单地上传和管理文件的最简单方法。
Appwrite Storage API利用了与Appwrite数据库相同的简单读写权限机制 。 这使您可以轻松地决定是否所有用户,特定用户甚至用户团队都可以访问您的文件。
var appwrite = new window .Appwrite();
appwrite
.setEndpoint( 'https://localhost/v1' )
.setProject( '[PROJECT-ID]' )
;
var file = document .getElementById( 'file-input' ).files[ 0 ];
let read = [ '*' ]; // wildecard read access
let write = [ 'user:self' ]; // write access only to me
appwrite.storage.createFile(file, read, write)
.then( function ( response ) {
console .log( 'file uploaded successfully' );
}, function ( error ) {
console .log(error);
});
Appwrite Storage服务还提供与自动更新的防病毒服务器的内置集成。 扫描并验证所有上传到系统的新文件,以确保您和用户的安全。
Appwrite Storage服务提供的最有用的功能之一是能够预览文件内容并将其显示为应用程序或网站中的缩略图的功能。 您还可以动态更改缩略图的大小,在不同的图像格式之间转换它们(支持webp!),并更改其质量以改善网络性能。
Appwrite Teams服务允许您和您的用户创建团队并共享对不同API资源(如文件或文档)的许可。 这是对产品实施复杂的访问控制要求的简便方法。
每个团队成员还可以担任不同的角色,以使您拥有更大的灵活性。
Appwrite Task服务是设置定期计划作业的好方法。
无需使用复杂的crontabs或长时间运行的守护程序进行处理,而不必担心诸如容错,监视和错误日志记录之类的事情,您所要做的就是提交带有任务的表单作为HTTP端点和类似cron的语法,以指示如何通常应该执行它。 就这么简单。
您还可以使用任务高级选项将不同的HTTP标头添加到您的请求中,或通过基本HTTP身份验证对其进行保护。 不用说,您所有敏感的HTTP密码都在Appwrite内部数据库中进行了安全加密。
Appwrite Webhooks旨在允许您轻松方便地集成后端的自定义行为。
想要在新用户注册到您的应用时接收短信吗? 是否想在您的一个应用程序文档获得更新时清除缓存? 只需添加一个新的Webhook,即可在特定的Appwrite事件触发时在您的端部触发一个HTTP端点。 使用Appwrite Webhooks时,您只会受到想象力的限制。
在这篇文章中,我重点介绍了一些更引人注意的Appwrite服务。 在以后的文章中,我将更深入地探讨一些功能,并说明如何将它们集成到您的代码中。
同时,我鼓励您阅读Appwrite官方文档和API参考,以了解有关不同Appwrite工具必须为开发人员提供的更多信息。 您也可以在这里关注我,以获取更多Appwrite教程。