《五天玩转EMAS Serverless》——第四节 实战:小程序疫苗预约-云函数【中】

本文涉及的产品
移动研发平台 EMAS,开发者版免费套餐
简介: 本文整理自EMAS Serverless讲师雨鸦,在《5天玩转EMAS Serverless训练营》的分享。本篇内容主要分为五个部分:1.云函数开发介绍2.实战:业务逻辑设计3.实战:业务逻辑实现4.实战:集成测试5.课程总结

接上篇:

https://developer.aliyun.com/article/1224134?spm=a2c6h.13148508.setting.23.4f394f0em1x0Jq


二、 实战:业务逻辑设计

image.png

接下来,正式进入项目实战环节。

 

首先我们进行疫苗预约小程序的业务场景分析。通常情况下,当用户进入疫苗预约小程序时,需要建立一个个人档案,以便完成后续的预约查询等环节,因此我们的第一个业务场景即可抽象为用户的登录和注册以及修改。

image.png

我们简要设计一下,如果调用登录接口的userId不在user库里,小程序会直接触发注册流程,并返回初始化信息。这样一来我们就把登陆和注册接口合二为一了。

 

关于用户信息的修改,在先前的数据库设计中,我们抽象的用户模型只有昵称和头像两个信息,所以在修改用户信息时,我们分解出接口updateUser。将修改信息userId和userName合二为一。根据avatarUrl修改库中的昵称或头像。

image.png

我们的第二个大的业务场景即是疫苗预约的整个流程,我们的疫苗预约小程序需要提供疫苗信息预览和预约等基本功能。在疫苗信息查询方面,我们抽象出一个describeVaccineDetail接口,来支持获得疫苗详情信息。同时抽象一个listVaccine接口,支持查询可接种疫苗信息。

image.png

在预约方面,我们抽象出bookAppointment接口,提供预约用户和目标疫苗的基本信息(userId,vaccineId,siteId),来实现疫苗预约的主要逻辑。

 image.png

在用户完成预约之后,我们还需要抽象提供一个listAppointment接口,来获取当前用户的所有预约单信息。

  • image.png

对于用户赴约接种疫苗的场景,我们本次实战的小程序会以更新预约单的形式,进行接口抽象。我们通过抽象出updateAppointment接口来模拟用户完成疫苗接种的行为,将该预约单信息修改为接种态并记录疫苗接种日期。

 

除此之外,我们还需要抽象用户因自身原因放弃接种疫苗的场景,我们抽象出一个cancelAppointment接口,将该预约单信息修改为取消态来模拟取消预约的场景。

 image.png

接下来我们以登录和注册的场景为例来进行业务流程的详细设计。

 

如上图所示详细地展示了登录及注册流程。首先,我们确定云函数的基本参数和返回值形态。函数接口会接收userId。因为登录和注册是合二为一的,所以可以根据userId,查询是否有用户信息。如果没有,完成初始化注册,返回新注册用户信息。在注册流程中,小程序会调用updateUser。指定userld传递userName和userAvatar。

image.png

接着,我们再设计一下疫苗预约的云函数。

 

如上图所示,展示了详细的疫苗预约流程。首先,我们需要确定一下云函数的输入参数,为了完成一次完整的疫苗预约,我们需要获取用户id、疫苗id接种地点id。然后根据用户id、疫苗id、接种地点id为用户创建一个疫苗预约单或返回预约失败的相关信息。


接下篇:

https://developer.aliyun.com/article/1224118?groupCode=emas

相关文章
|
24天前
|
消息中间件 缓存 监控
在FaaS中,如何设计无状态的函数来确保数据处理的一致性?
在FaaS中,如何设计无状态的函数来确保数据处理的一致性?
|
3月前
|
运维 负载均衡 Serverless
函数计算产品使用问题之在同一地域同一时刻最多可以同时运行多少个函数实例
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
24天前
|
机器学习/深度学习 监控 物联网
函数即服务(FaaS)
函数即服务(FaaS)
|
1月前
|
缓存 小程序 UED
如何利用小程序的生命周期函数实现数据的加载和更新?
如何利用小程序的生命周期函数实现数据的加载和更新?
61 4
|
1月前
|
小程序 UED 开发者
小程序的生命周期函数
小程序的生命周期函数
69 1
|
3月前
|
运维 Serverless 网络安全
函数计算产品使用问题之函数运行时间大于24小时该如何解决
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
3月前
|
Serverless API 异构计算
函数计算产品使用问题之gpu实例函数该如何创建
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
3月前
|
存储 运维 Serverless
函数计算产品使用问题之如何预热函数
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
2月前
|
缓存 前端开发 JavaScript
|
3月前
|
运维 Serverless 调度
函数计算产品使用问题之怎么在HTTP触发的函数里添加或读取自定义头部
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。

相关产品

  • 移动研发平台