Back4App解析平台的初学者指南

迈克尔Wanyoike
分享

如今,随着无代码平台的兴起,软件开发人员的未来似乎黯淡无光。幸运的是,现在有一种方法可以提高我们的效率,即利用我们现有的技能来使用低代码平台构建新的应用程序。与无代码不同,低代码平台更灵活,并提供更大的可定制功能。你可以编写自定义代码片段并安装Node.js包来为应用程序提供更高级的功能。

在本文中,我将简要介绍Back4App,一个Backend-as-a-Service(先生)为开发人员提供解析应用程序的平台。BaaS平台允许开发人员以最少的努力快速开发和启动新的后端应用程序。它们还消除了设置托管和配置自动伸缩的需要,这对开发人员来说是一项耗时的任务。

什么是解析平台

解析平台是一种流行的用于构建应用程序后端的开源框架。它运行在Node.js上,并被编写为与Express.js一起工作。简单地说,它就像一个开源版本的Firebase,你可以在你的机器上运行,也可以在你自己的服务器上运行。

这个项目的起源可以追溯到2011年分析公司为移动开发人员提供后端工具。这家初创公司筹集了550万美元的风险投资,这使得它的用户基础在一年内增长到2万名开发者。

该公司非常成功,两年后被Facebook以8500万美元收购。到2014年,该平台拥有约50万个移动应用程序。不幸的是,Facebook投资失败该公司决定在2017年1月之前关闭该服务。为了帮助用户,Facebook开源了Parse平台,允许开发者将他们的应用迁移到自己的Parse服务器上。

从那时起,开源社区一直致力于这个项目,并建立了一个网站、在线文档和社区论坛。今天,Parse提供了许多后端特性,包括:

  • 数据库管理
  • 文件对象存储
  • REST和GraphQL api
  • 身份验证
  • 用户权限
  • 实时查询(实时数据)
  • 推送通知
  • 云计算功能
  • 云计算的工作

Parse平台主要由以下部分组成:

  • 解析服务器:用于构建后端应用程序的无头服务器。
  • 解析仪表板:用React构建的前端用户界面。
  • 解析服务器模块:扩展Parse Server特性的模块和适配器的集合。例如,您可以安装一个适配器来利用Firebase的身份验证服务。
  • 客户端sdk:用于连接前端应用程序到Parse Server的语言库。这些库包括JavaScript、Android、Objective C、Flutter、Unity等。

注意,这里有几个Parse项目我没有提到。例如,有Android和IOS应用程序为Parse服务器提供前端接口。

Mongo vs PostgreSQL

解析服务器目前支持Mongo和PostgreSQL数据库,这两个数据库分别是NoSQL和SQL领域的领先数据库。这两个数据库都非常强大,因此很难选择使用哪个数据库。

详细的指导可能会有所帮助。在我看来,如果你是一个初学者,MongoDB是一个更好的选择,因为它更灵活,学习曲线更浅。如果你是一个有经验的SQL开发人员,使用PostgreSQL你会更有效率。下面是每个数据库的快速比较。

蒙戈

优点

  • 灵活的模式:最适合需求不完全清楚的新项目
  • 横向可扩展:可以轻松服务数百万用户
  • 支持实时数据更新和读取;非常适合分析应用程序
  • 分片:可以轻松处理海量数据集

缺点

以前的问题,如ACID遵从性和join,现在在最新版本的MongoDB中得到了正式支持。

PostgreSQL

优点

  • 刚性模式:最适合具有已知需求和严格数据完整性的项目
  • 引用完整性/外键约束支持:定义表关系的要求
  • 对ACID事务的开箱即用支持
  • 使用SQL,这是访问和操作数据的最佳查询语言

缺点

  • 更长的学习曲线
  • 只能垂直缩放;水平扩展是可能的,但并不容易

如果你仍然不知道该使用哪一种,幸运的是,Back4App为你提供了答案。

Back4App

Back4App是一家cackend-as-a-service公司,以合理的价格为开发者托管Parse服务器应用。它极大地简化了Parse应用程序的开发。你所要做的就是报名免费的一级帐户(没有信用卡)开始250MB的数据存储和25k的请求。

付费计划提供更大的资源配额和更多的功能,如备份、数据恢复、CDN、自动扩展和高请求性能。免费计划只推荐用于学习,而付费计划每秒可以处理数千个请求。看到完整定价页面欲知详情。

多租户仪表板

Back4App允许您在同一个仪表板上创建和管理多个Parse应用程序。与自己手动安装、配置和托管每个解析服务器相比,这节省了大量时间。区别是分钟vs小时。

多租户仪表盘

数据库浏览器

Back4App使用Mongo作为数据库。然而,它的行为就像在运行PostgreSQL一样。这很好,因为您可以在使用非SQL数据库时获得SQL数据库的优势——例如引用完整性、外键约束和模式验证。这个实现是在代码中完成的,并在数据库和仪表板之间运行。

数据库浏览器组织表(集合)类和数据布局在电子表格格式。您可以添加/编辑/删除/重新排序列,指定数据类型,导入/导出CSV或JSON格式的数据。

数据库浏览器

电子表格界面允许您轻松地创建和编辑数据行。还可以将图像或pdf等二进制文件上传到具有File数据类型的列中。这是另一个巨大的时间节省,因为您不需要配置文件存储服务来处理二进制数据。使用Parse,它已经内置并可配置以支持外部文件存储服务。

身份验证

Parse提供内置的电子邮件/密码身份验证服务。用户和角色存储在数据库中,可以通过数据库浏览器查看和创建。用户也可以通过SDK、REST或GraphQL API端点以编程方式创建。

下面是一个使用Parse JavaScript SDK在前端实现的注册函数的例子:

函数注册用户解析用户用户“用户名”“亚历克斯”用户“密码”“abc123”用户“电子邮件”“a@abcd.com”试一试用户注册//一切正常,用户登录错误警报错误:“+错误代码+”“+错误消息/ /哦. .出问题了

Back4App允许开发人员启用电子邮件验证而且密码恢复他们的Parse应用程序的特性。这些都是用户在使用任何安全应用程序时所期望的基本帐户管理功能。

除了默认的身份验证方法外,你还可以启用Parse应用程序使用以下任何登录方法进行身份验证:

  • 苹果
  • 脸谱网
  • GitHub
  • 谷歌
  • 推特
  • LinkedIn
  • 还有更多

授权

授权确定经过身份验证的用户是否有权访问存储在数据库中的信息。的使用定义了权限角色而且访问控制.有两个级别的访问控制:

  • 类级权限(CLP):保护一个类(表)中的所有数据。您可以使用CLP为每个角色定义不同的读写策略。
  • 对象级访问控制:对单个行进行保护。这允许一个用户的数据与同一类(表)中的另一个用户保持分离。Parse还支持使用会话为匿名用户分离数据。

解析使用访问控制列表(ACL)保护私人数据不被公开访问。但是,如果用户拥有一些需要公开共享的数据,则需要创建第二个ACL以授予公共访问权限。请注意,类级权限将始终覆盖ACL权限。

区块链数据库

这是一个新功能,允许在私有以太坊区块链网络中存储数据。区块链与传统数据库的不同之处在于,一旦记录被插入和验证,就不能更新或删除。这有许多实际的实现,其中各方之间的信任在业务事务中至关重要。

区块链数据库

在写这篇文章的时候,这个功能还在测试阶段。

公共数据集

通常在构建用户界面时,需要用国家、城市、邮政编码、车辆模型、颜色等数据填充特定的输入元素。Back4App通过提供数据库中心,一个公共数据库列表,你可以自由地访问和使用你的应用程序。

下图是世界上所有城市的数据集示例:

公共数据集

有三种访问公共数据库的方法:

  • 你可以连接一旦连接成功,你可以通过REST或GraphQL通过你的应用程序查询数据库。这种方法允许你的应用程序接收对模式和数据的任何新的更新。
  • 你可以克隆公共数据库到你的仪表板在一个新的应用程序。
  • 你可以出口将一个公共数据库转换为CSV或JSON格式,然后将它导入到你的应用程序中。

最后两种方法允许您根据需要修改公共数据集。

实时查询

在构建实时应用程序时,您可能被迫每隔一秒钟获取新数据,以检查是否有任何新的更新。这种技术被称为轮询这是有问题的,因为它会导致很高的网络和服务器使用率。想象一下,如果你的应用被成千上万的用户使用。

Parse有一个内置协议称为LiveQuery允许客户端订阅/取消订阅LiveQuery服务器。当相关数据更新时,LiveQuery服务器将新数据推送到已订阅的所有客户端。

Back4App,激活LiveQuery服务器非常简单,只需进入你的应用程序服务器设置>服务器URL和实时查询激活它。

激活实时查询

云代码功能

对于前端密集型应用程序,很多数据操作都是在客户端设备上完成的。这通常需要发送大量的数据,以便前端代码可以处理并使用它来显示信息的摘要。最终用户在使用你的应用程序时可能会感到很慢。

Parse提供了一个内置的特性,称为云代码功能这允许所有繁重的数据提升在服务器本身上执行。例如,如果您想要去年特定产品的平均销售价值,只需在服务器环境中检索所有必要的数据,执行计算并将值发送给前端客户端。

在服务器上执行这些操作更快、更有效,并将为最终用户带来更流畅的体验。Parse的云函数的另一个好处是它运行在一个完整的Node.js环境中,不像AWS Lambda和Cloudflare Workers。这意味着你可以安装任何你想要的Node.js包,而不必求助于变通方法。

云代码函数

这里有一些例子云代码功能运行在Parse Server应用程序上的:

//这是一个hello函数,将在控制台上记录一条消息解析定义“你好”异步请求= >控制台日志“来自Cloud Code的你好!”返回“来自Cloud Code的你好!”// sumNumbers函数通过请求对象接受JSON参数解析定义“sumNumbers”异步请求= >返回请求参数个数num1+请求参数个数num2

下面是如何从前端应用程序调用云函数:

常量helloResult等待解析运行“你好”常量参数个数num13.num24常量sumResult等待解析运行“sumNumbers”参数个数

您还可以使用云代码函数实现高级功能,例如发送短信任何使用为什么TwilioAPI:

解析定义“SendSMS”异步请求= >//需要发送的值getMessage请求参数个数消息getPhoneTo“+目标测试电话”getPhoneFrom+你的第一个电话号码accountSid“AccountSID”authToken“AuthToken”//需要Twilio模块并创建一个REST客户端客户端需要“为什么twilio”accountSidauthToken返回等待客户端消息创建身体getMessage// Twilio可以发送到的任意数字getPhoneFrom//从Twilio购买的可用于出站通信的号码getPhoneTo//短信正文

您可以在Parse Server应用程序中实现的其他高级云功能示例包括通过条纹API和发送电子邮件通过SendGridAPI。

触发器

触发器是允许您在事件前后实现自定义逻辑(如格式化或验证)的云函数。看看下面的验证代码示例:

解析beforeSave“审查”请求= >//执行任何额外的beforeave逻辑字段星星要求真正的选项星星= >返回星星> =1& &星星<5错误“你的评价必须在一到五星之间”

在上面的例子中,验证代码确保用户在评论中给出的评价不会低于1星级或高于5星级。否则,客户端将收到一个错误。Parse目前支持以下类型的触发器:

  • 保存触发器:用于强制执行特定的数据格式
  • 删除触发器:用于执行删除策略
  • 找到触发:用于数据转换
  • 会话触发器:用于阻止被禁止的用户或跟踪登录事件
  • LiveQuery触发器:用于实现限制

使用云代码,您可以确保您支持的所有客户端应用程序都具有相同的行为——例如web、Android、iOS等等。

云作业和调度

云计算的工作仅仅是不需要响应的长时间运行的函数。例如,批处理大量图像或web抓取。您还可以使用云作业来执行任务,例如删除未验证电子邮件的不活跃用户。

注意解析服务器不提供调度。幸运的是,Back4App做到了——通过一个被称为Cron作业.你可以简单地按照下面的格式写一个云函数:

解析工作“jobName”异步请求= >//在这里写代码返回“工作成果”

接下来,将cron作业代码上传到应用程序,然后使用背景的工作特性来安排代码应该运行的时间。

安排后台作业

模块和适配器

您可以通过安装来进一步扩展Parse服务器应用程序的功能node . js包而且解析适配器.下图显示了核心Parse社区维护的一些适配器。

解析适配器

适配器是简单的Node.js包,可以通过上传<代码>package.json文件到您的云功能仪表板。适配器的一个例子是parse-server-sqs-mq-adapter它可以将解析服务器应用程序与亚马逊简单队列服务集成。

不幸的是,许多社区提供的适配器和模块已经被弃用,或者没有得到积极的维护。所以你可能需要使用官方支持的npm包,并编写自定义代码,通过使用最新的依赖项来确保你的代码是安全的。

服务器日志

如果你使用<代码>console.log或<代码>console.error函数,它们将显示在云代码>日志仪表盘,如下图。

服务器日志

日志分为以下几种:

  • 系统
  • 信息
  • 错误
  • 访问

事件日志是运行生产应用程序的一个重要方面,因为它可以帮助您理解请求并发现代码中的错误。

分析

Back4App提供分析报告工具——这是一个额外的特性,因为开源Parse Server只支持捕获数据,而不支持报告。Back4App的分析报告工具有助于提供关于你的应用的实时信息,如增长,转换,性能和使用行为

该工具附带一组预定义的跟踪报告,包括:

  • 观众报告
  • 事件报告
  • 性能报告
  • 慢速请求报告

下图显示了一个性能报告示例。

分析性能报告

您也可以定义自己的自定义事件报表,这将允许您通过Parse SDK跟踪任何事件。请看下面通过Parse SDK在客户端实现的示例代码:

//将桶数据点的范围定义为有意义的段服务“发型”专业“约翰。”//将维度与事件一起发送到Parse解析分析跟踪“myEventName”

上面的代码捕获数据并将其发送到Parse服务器。稍后可以查询这些数据并用于构建自定义事件报告。

前端SDK库

Parse支持所有主要的前端框架和语言SDK库,包括:

  • JavaScript
  • Android,颤振
  • IOS: Objective C, Swift
  • net
  • PHP
  • 团结

不受支持的编程语言可以使用休息而且GraphQL用于与解析服务器上的数据交互的api。使用解析JavaScript SDK在浏览器环境中,需要安装以下程序npm图书馆

npm安装解析

然后像这样导入它:

常量解析需要“解析”// ES6最小化进口解析“解析/ dist / parse.min.js”

该库通过向开发人员提供一组他们可以执行的函数,直接与Parse Server交互。这些函数可以处理如下操作:

  • 用户注册、登录和会话处理
  • CRUD操作和高级查询
  • 使用Live Queries订阅实时数据
  • 文件管理:上传、下载、删除等。
  • 计算GeoPoints
  • 接收推送通知
  • 跟踪自定义分析

下面是在JavaScript中使用Parse SDK的CRUD操作示例:

/ /初始化解析解析初始化“YOUR_APP_ID_HERE”“YOUR_JAVASCRIPT_KEY_HERE”解析serverURL“https://parseapi.back4app.com/”//保存新数据对象异步函数saveNewPerson常量解析对象“人”“名称”“约翰·斯诺”“年龄”27试一试控制台日志"用id创建的新人:"+结果id错误控制台日志错误消息//查询单个数据对象异步函数retrievePerson常量查询解析查询“人”试一试常量等待查询得到“mhPFDl”常量的名字得到“名称”常量年龄得到“年龄”控制台日志名称:$ {的名字年龄:$ {年龄错误控制台日志错误消息

总结

大多数低代码和无代码平台允许您在没有编码经验的情况下快速构建特定的解决方案。不幸的是,这些平台经常将您锁定,功能有限。幸运的是,Parse和Back4App为有经验的开发人员提供了他们所需的所有定制,并可以自由地托管任何云提供商。

Back4App提供的一些未被提及的附加功能包括:

  • GDPR合规计划
  • 自动备份
  • 全天候客户支持
  • 内容交付网络
  • 可伸缩的基础设施

最后,我将留给你们一个问题。您希望如何构建下一个后端应用程序?

  • 选项一:使用Node.js框架,比如Express
  • 选项B:使用BaaS平台,如Back4App
Baidu