小程序云开发初探
背景:
无服务开发
那什么是无服务开发呢?无服务,又称为 Serverless
。Serverless
还处在一个比较初期的阶段,目前也没有权威和官方的定义。顾名思义, Serverless
就是指应用的开发不再需要考虑服务器这样的硬件基础设施,基于 Serverless
架构的应用主要依赖于像腾讯云这样的云服务商提供的后台服务。比如说无服务云函数、云数据库、对象存储服务等等。简单来说,相当于你现在要开个水果店卖水果,以前你还得要租店面,搞水电、装修门面。现在这些都不用了,你就在一个已经搭好各种各样设施的超市里,租一个已经帮你搞好门面的架子或者箱子,卖得好你就租大一点,卖不好就租小一点,随时随地随你的心意,非常灵活。
为什么说无服务化开发是趋势呢?因为云服务的进程,已经从物理机,演进到 IAAS
,再到 PAAS
。IAAS
就是包括像云虚拟机、私有网络、网络专线、负载均衡等等的基础服务;PAAS
则更抽象一些,比如像云数据库、网络防护等等。基于 IAAS
、PAAS
,云服务商发展出 Serverless
这类更高级的开发服务。因此,无服务开发就会是今后开发类似小程序这类轻量应用的新的开发趋势。
总结来说就是,之前开发一个小程序,至少要一个前端和后端,但是用了小程序云开发之后,可以简化成前端就可以完整开发出一个小程序了,从而以低成本方便快速的实践项目。
云开发的主要功能:
目前提供三大基础能力支持:
- 云函数:在云端运行的代码,微信私有协议天然鉴权,开发者只需编写自身业务逻辑代码
- 数据库:一个既可在小程序前端操作,也能在云函数中读写的 JSON 数据库
- 文件存储:在小程序前端直接上传/下载云端文件,在云开发控制台可视化管理
云函数:
云函数是一段运行在云端的代码,无需管理服务器,在开发工具内编写、一键上传部署即可运行后端代码。云开发的云函数的独特优势在于与微信登录鉴权的无缝整合。当小程序端调用云函数时,云函数的传入参数中会被注入小程序端用户的 openid,开发者无需校验 openid 的正确性因为微信已经完成了这部分鉴权,开发者可以直接使用该 openid。
数据库:
云开发提供了一个 JSON 数据库,顾名思义,数据库中的每条记录都是一个 JSON 格式的对象。一个数据库可以有多个集合(相当于关系型数据中的表),集合可看做一个 JSON 数组,数组中的每个对象就是一条记录,记录的格式是 JSON 对象。
这样的话,数据库的存储也不用考虑了,直接提供了一个类似于 NOSQL 一样的数据库,而且可视化窗口提供了导入数据的功能,十分方便。
文件存储:
云开发提供了一块文件存储空间,提供了上传文件到云端、带权限管理的云端下载能力,开发者可以在小程序端和云函数端通过 API 使用云文件存储功能。
在小程序端可以分别调用 wx.cloud.uploadFile 和 wx.cloud.downloadFile 完成上传和下载云文件操作。
开始:
打开微信开发者工具,填写基本信息,用云模板初始化(注意这里一定要有AppId,不能以访客的形式初始化项目)。
初始完成之后先点击左上角云开发开通功能才能使用,开通之后还需要右键点击login项目,然后点击“上传并部署”:
初始完成之后可以看到模板已经给出了几个方法案例,源代码也有相关注释,可以直接查看源代码学习就可以了。
参考文章:https://mp.weixin.qq.com/s/JoWELCugqzLITDIDVX8G4w
官方文档:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/basis/getting-started.html