前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Appwrite - 独立开发也可以像一个团队那样高效

Appwrite - 独立开发也可以像一个团队那样高效

作者头像
埃兰德欧神
发布2024-07-15 13:29:45
1680
发布2024-07-15 13:29:45
举报
文章被收录于专栏:开源地带

左边为之前的logo,右边为新logo

Appwirte是什么

Appwrite是一个基于Docker的端到端开发者平台,其容器化的微服务库可应用于网页端,移动端,以及后端。Appwrite 通过视觉化界面简化了从零开始编写 API 的繁琐过程,在保证软件安全的前提下为开发者创造了一个高效的开发环境。

Appwrite 可以提供给开发者:用户验证,外部授权,用户数据读写检索,文件储存,图像处理,云函数,消息(邮件,SMS,移动端原生消息),实时事件(类似多人协作场景)等多种服务.

产品的口号是:独立开发也可以像一个团队那样高效,用很少的代码可以构建一个安全可扩展的应用。

Your backend, minus the hassle Build secure and scalable applications with less code. Add authentication, databases, storage, and more using Appwrite's development platform.

本地安装

Appwrite 的容器化服务器只需要一行指令就可以运行。您可以使用 docker-compose 在本地主机上运行 Appwrite,也可以在任何其他容器化工具(如 Kubernetes、Docker Swarm 或 Rancher)上运行 Appwrite。

启动 Appwrite 服务器的最简单方法是运行我们的 docker-compose 文件。在运行安装命令之前,请确保您的机器上安装了 Docker:

Linux & Macos
代码语言:javascript
复制
docker run -it --rm \
    --volume /var/run/docker.sock:/var/run/docker.sock \
    --volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw \
    --entrypoint="install" \
    appwrite/appwrite:latest
Windows
  1. CMD
代码语言:javascript
复制
docker run -it --rm ^
    --volume //var/run/docker.sock:/var/run/docker.sock ^
    --volume "%cd%"/appwrite:/usr/src/code/appwrite:rw ^
    --entrypoint="install" ^
    appwrite/appwrite:latest
  1. PowerShell
代码语言:javascript
复制
docker run -it --rm `
    --volume /var/run/docker.sock:/var/run/docker.sock `
    --volume ${pwd}/appwrite:/usr/src/code/appwrite:rw `
    --entrypoint="install" `
    appwrite/appwrite:latest

运行后,可以在浏览器上访问 http://localhost 找到 Appwrite 控制台。在非 Linux 的本机主机上完成安装后,服务器可能需要几分钟才能启动。

需要自定义容器构架,可以查看 Docker 环境变量https://appwrite.io/docs/environment-variables 文档。还可以参考我们的 docker-compose.ymlhttps://appwrite.io/install/compose 和 .envhttps://appwrite.io/install/env 文件手动设置环境。

入门

1. 认证

集成使用多种登录方式(如电子邮件/密码、短信、OAuth、匿名、魔法链接等)对用户进行身份验证。

  • 30多种登录方式
  • 支持团队、角色和用户标签
  • 速率限制和高级用户保护
  • 自定义SMTP和电子邮件模板
代码语言:javascript
复制
const result = account.create(
 ID.unique(),
 'walterobrian@example.com', 
 'password',
 "Walter O'Brian"
);

注册登录

2. 数据库

存储、查询和管理数据,可扩展且可靠的数据库

  • 安全稳定
  • 快速内存缓存
  • 高级权限模型
  • 自定义数据验证
  • 支持外键关联
代码语言:javascript
复制
const result = databases.createDocument( 'Your-tasks', tasks, ID.unique(), {
 'description': 'Research user needs', 
 'tags': ['UX', 'design'], 
 } 
);
3. 存储

上传和管理文件,安全地存储文件,具有高级压缩、加密和图像转换功能。

  • 文件静态和传输加密
  • 内置图像转换功能
  • 支持WebP/Brotli的高级压缩
代码语言:javascript
复制
const result = storage.createFile(
 'my-bucket',
 ID.unique(),
 document.getElementById("uploader").files[0]
);

文件上传

4. Serverless Function

使用Function可以自定义和扩展你的后端,部署和扩展在安全、隔离的运行时中运行的无服务器函数。

  • 从GitHub自动部署
  • 使用GitHub、CLI、事件监听器或HTTP请求触发
  • 本地部署目前支持30多种运行时,13种语言(基本涵盖所有的后端语言和技术)
  • Appwrite Cloud目前支持 node php-8.0 ruby-3.0 python-3.9 dart-2.17
  • 自定义域名支持
代码语言:javascript
复制
const userId = req.headers['user-id']; 

if (req.path === '/subscribe') { 
 const session = await stripe.checkout(userId); 
 return res.redirect(session.url, 303); 
} 

if (req.path === '/webhook') { 
 await appwrite.addSubscriberLabel(userId); 
} 

return res.json({ success: true });
5. 实时事件

实时事件适用于所有服务,订阅并使用实时API对任何Appwrite事件做出反应。

  • 无限订阅
  • 内置权限管理
  • 支持数据库、身份验证、存储和函数

多人协作场景

软件架构

系统架构图

从架构图上可以看出Appwrite 使用高拓展性的微服务架构。Appwrite 目前支持多种 API(REST、WebSocket 和 GraphQL),您可以根据开发习惯灵活选择。

Appwrite API 界面层利用后台缓存和任务委派来提供极速的响应时间。后台的 Worker 代理还允许使用消息队列来处理负载,并精确控制硬件合理分配和成本。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-03-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开源地带 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Appwirte是什么
  • 本地安装
    • Linux & Macos
      • Windows
      • 入门
        • 1. 认证
          • 2. 数据库
            • 3. 存储
              • 4. Serverless Function
                • 5. 实时事件
                • 软件架构
                相关产品与服务
                容器服务
                腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档