首页 > 互联资讯 > 网络资讯  > 

创业团队减少成本,让开发者不在头疼,微信小程序|云开发

在小程序的研发过程中,一个痛点是,不得不花费不少精力在服务器的开发配置工作上,这个工作对创业团队来说,是不必要的投入,虽然团队有开发运维工程师,但是内部沟通和协调也是消耗,其实理想的小程序开发团队的状态,是开发者只关注业务逻辑,把产品设计做好。

微信小程序团队也看到了小程序开发者的这个普遍需求,去年 9 月,腾讯云与微信团队联手推出了「云开发」平台。

借助「云开发」,开发者无需搭建部署服务器,直接使用云端能力,而且,开发微信小程序或小游戏都行。云开发为开发者提供完整的原生云端支持和微信服务支持,弱化后端和运维概念,无需搭建服务器。

经过了一年多的时间,【小程序·云开发】的系统架构不断改进,已经支持每天亿级别的调用量,接口可用率已达到 99.99%,也就是四个 9 的可用性。对于企业开发者,不用再操心乱七八糟的宕机维护之类的事情。


一、介绍

开发者可以使用云开发开发微信小程序、小游戏,无需搭建服务器,即可使用云端能力。

云开发为开发者提供完整的原生云端支持和微信服务支持,弱化后端和运维概念,无需搭建服务器,使用平台提供的 API 进行核心业务开发,即可实现快速上线和迭代,同时这一能力,同开发者已经使用的云服务相互兼容,并不互斥。

云开发提供了几大基础能力支持:


二、第一个云开发小程序

1. 新建云开发模板

也可以省略此步骤,直接在已有项目上开通和使用云开发。

新建项目选择一个空目录,填入 AppID(使用云开发能力必须填写 AppID),勾选创建 “云开发 QuickStart 项目”,点击创建即可得到一个展示云开发基础能力的示例小程序。该小程序与普通 QuickStart 小程序有以下不同需注意:

  • 无游客模式、也不可以使用 测试号
  • project.config.json 中增加了字段 cloudfunctionRoot 用于指定存放云函数的目录
  • cloudfunctionRoot 指定的目录有特殊的图标
  • 云开发能力从基础库 2.2.3 开始支持(覆盖率 97.3%,查看兼容性问题)

从基础库 2.4.1 开始,在小程序插件中可以使用云开发,插件中使用云开发时,使用的是插件方的云资源而非宿主的云资源,在使用方式上与在小程序中使用无异。

2. 开通云开发、创建环境

创建了第一个云开发小程序后,在使用云开发能力之前需要先开通云开发。在开发者工具工具栏左侧,点击 “云开发” 按钮即可打开云控制台、根据提示开通云开发、创建云环境。默认配额下可以创建两个环境,各个环境相互隔离,每个环境都包含独立的数据库实例、存储空间、云函数配置等资源。每个环境都有唯一的环境 ID 标识,初始创建的环境自动成为默认环境。

注:AppID 首次开通云环境后,需等待大约 10 分钟方可正常使用云 API,在此期间官方后台服务正在做准备服务,如尝试在小程序中调用云 API 则会报 cloud init error:{ errMsg: "invalid scope" } 的错误

3. 体验小程序

开通创建环境后,即可以开始在模拟器上操作小程序体验云开发提供的部分基础能力演示。

4. 查看控制台

云开发控制台是管理云开发资源的地方,控制台提供以下能力:

  • 运营分析:查看云开发监控、配额使用量、用户访问情况
  • 数据库:管理数据库,可查看、增加、更新、查找、删除数据、管理索引、管理数据库访问权限等
  • 存储管理:查看和管理存储空间
  • 云函数:查看云函数列表、配置、日志


三、云开发能力

小程序·云开发提供了多个基础能力,以下对各个主要能力介绍。

1.数据库

云开发提供了一个 JSON 数据库,顾名思义,数据库中的每条记录都是一个 JSON 格式的对象。一个数据库可以有多个集合(相当于关系型数据中的表),集合可看做一个 JSON 数组,数组中的每个对象就是一条记录,记录的格式是 JSON 对象。

关系型数据库和 JSON 数据库的概念对应关系如下表:


以下是一个示例的集合数据,假设我们有一个 books 集合存放了图书记录,其中有两本书:

在图书信息中,我们用 title, author 来记录图书标题和作者,用 characters 数组来记录书中的主要人物,用 publishInfo 来记录图书的出版信息。在其中我们可以看到,字段既可以是字符串或数字,还可以是对象或数组,就是一个 JSON 对象。

每条记录都有一个 _id 字段用以唯一标志一条记录、一个 _openid 字段用以标志记录的创建者,即小程序的用户。需要特别注意的是,在管理端(控制台和云函数)中创建的不会有 _openid 字段,因为这是属于管理员创建的记录。开发者可以自定义 _id,但不可自定义和修改 _openid 。_openid 是在文档创建时由系统根据小程序用户默认创建的,开发者可使用其来标识和定位文档。

数据库 API 分为小程序端和服务端两部分,小程序端 API 拥有严格的调用权限控制,开发者可在小程序内直接调用 API 进行非敏感数据的操作。对于有更高安全要求的数据,可在云函数内通过服务端 API 进行操作。云函数的环境是与客户端完全隔离的,在云函数上可以私密且安全的操作数据库。

数据库 API 包含增删改查的能力,使用 API 操作数据库只需三步:获取数据库引用、构造查询/更新条件、发出请求。以下是一个在小程序中查询数据库的发表于美国的图书记录的例子:

更多的数据库的 API 的使用和数据库管理,可以参考数据库指引章节。

2.存储

云开发提供了一块存储空间,提供了上传文件到云端、带权限管理的云端下载能力,开发者可以在小程序端和云函数端通过 API 使用云存储功能。

在小程序端可以分别调用 wx.cloud.uploadFile 和 wx.cloud.downloadFile 完成上传和下载云文件操作。下面简单的几行代码,即可实现在小程序内让用户选择一张图片,然后上传到云端管理的功能:

上传完成后可在控制台中看到刚上传的图片。

更多的存储 API 和管理,可以参考存储指引章节。

3.云函数

云函数是一段运行在云端的代码,无需管理服务器,在开发工具内编写、一键上传部署即可运行后端代码。

小程序内提供了专门用于云函数调用的 API。开发者可以在云函数内使用 wx-server-sdk 提供的 getWXContext 方法获取到每次调用的上下文(appid、openid 等),无需维护复杂的鉴权机制,即可获取天然可信任的用户登录态(openid)。

比如我们如下定义一个云函数,命名为 add ,功能是将传入的两个参数 a 和 b 相加:

在开发者工具中上传部署云函数后,我们在小程序中可以这么调用:

如需在云函数中操作数据库、管理云文件、调用其他云函数等操作,可使用官方提供的 npm 包 wx-server-sdk 进行操作

更多的云函数管理和 API,可以参考云函数指引章节。

4.云调用

云调用是云开发提供的基于云函数使用小程序开放接口的能力,支持在云函数调用服务端开放接口,如发送模板消息、获取小程序码等操作都可以在云函数中完成,详情可见具体开发指引。

5.HTTP API

云开发资源也可以通过 HTTP 接口访问,即在小程序外访问,接口见HTTP API 文档。

通过这个章节,我们已经了解了云开发是什么,提供了哪些能力,能做什么,接下来跟着我们一起进入开发指引的章节,看看如何上手开发吧!

创业团队减少成本,让开发者不在头疼,微信小程序|云开发由讯客互联网络资讯栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“创业团队减少成本,让开发者不在头疼,微信小程序|云开发