加入收藏 | 设为首页 | 会员中心 | 我要投稿 盐城站长网 (https://www.0515zz.cn/)- 运维、云管理、管理运维、智能数字人、AI硬件!
当前位置: 首页 > 站长资讯 > 评论 > 正文

才能深刻理解的9个编程道理

发布时间:2021-02-12 13:09:45 所属栏目:评论 来源:互联网
导读:没想到单单接口这块我这篇就写了这么长,主要是照顾没有经验的同学哈~ 回顾设计接口的思路: 起初是想每种消息类型分开不同的接口 考虑到同一个文案会下发给多个人,所以接收者参数得是支持批量的传入 考虑到会有批量调用接口的场景,所以需要一个批量接口

没想到单单接口这块我这篇就写了这么长,主要是照顾没有经验的同学哈~

回顾设计接口的思路:

  1. 起初是想每种消息类型分开不同的接口
  2. 考虑到同一个文案会下发给多个人,所以接收者参数得是支持”批量“的传入
  3. 考虑到会有批量调用接口的场景,所以需要一个批量接口
  4. 考虑到需要统计下发消息的场景,所以需要抽象出”模板“,在平台下发的消息都得有”模板“
  5. 有了”模板“,可以将很多信息固化到模板中,所以最终我们抽象出两个接口:单推和批量。

再来聊聊模板

在前面我们已经定义好接口了,跟简单你们所实现的发消息功能最主要的区别就是多了”模板“的概念。

在上面提到了一点:有了”模板“,可以将很多信息固化到模板中。那我们固化了什么东西到模板中呢?

  • 能够发送的消息种类。消息管理平台是可以发多种类型的消息的,所以我们模板是需要有字段区分不同的消息类型。别想得这么难,其实我们就用1表示短信,2表示邮件...
  • 模板创建者信息(手机号、姓名),这个跟发消息的实质内容没有任何关系,只是如果模板出现了什么不可描述的问题,背锅侠总得找出来吧,如果模板创建者离职了怎么办?没事,我会根据创建者把所在部门给找到,那就找部门背锅(嘿嘿)
  • 消息的文案。综合上面所看到的消息,我们可以看到一条消息无非由以下部分所组成:内容、标题、图片、链接、视频...不同的消息能发的文案也不一样,像短信顶多就只有内容和链接,而像通知栏消息(Push)就可以有标题、内容、图片、链接所组成。所以,我们会把消息的文案用json的格式存储在一个字段中。
  • 消息的业务规则。这里所讲的业务规则并不是真正的细节业务,而是对不同消息类型上的平台性约束。比如说,在产品层面上,希望晚上用户收不到通知栏推送(毕竟会对用户进行打扰);希望用户一个小时内不会接收到两条,一天最多收到N条通知栏推送(也是出于用户的体验)。这些平台性的约束就适合放在消息管理平台上做,你可以理解为是一个兜底的功能。
  • 发送账号。什么?发条消息还有账号的概念?你搞错了吧,三歪?。其实是真的有的,在发邮件的时候可以选取不同的邮件账号,在发微信公众号消息时可以选取不同的微信公众号(小程序同理),在发IM消息时可以使用不同的账号发送。而在接入短信的时候其实是分了两种类型的:通知和营销。我们会把这些都抽象为账号。
  • 接收者Id类型。站内的IM消息用的是站内的userId,发通知栏消息(PUSH)用的是did,发短信用的是手机号,发微信类的消息用的是openId。指定接收者的Id类型,表明这个模板你要传入哪种类型的id。假设你指明是userId,但你要发短信,消息管理平台就需要将userId转成手机号。这里也是用一个字段标识,1表示userId,2表示did ...

可以发现的是,我们把一条消息所需要的信息(甚至不需要的信息)都塞进模板里面了,等调用方传入模板Id时,我就能拿到我想要的所有信息了。
 

单个接口指的是:一次给1~N人发送消息,这批人收到的是相同的文案

批量接口指的是:一次给1个人发送一个文案,但一次调用可以传N个人及对应的文案

这里的单个和批量不是以发送人的维度去定义的,而是人所对应的消息文案。

再再再举个例子,现在我给关注我的同学都发一条消息:「大哥大嫂新年好」,这种情况我只需要使用send方法就好了,相同的文案我给一批人发,这批人收到的文案是一模一样的。

一次单推接口调用的请求参数:
 

那我们的平台也可以这样玩啊,你想发消息对吧?可以,先来我的平台新建一个”模板“,到时候把模板Id发给我就行。

于是,我们就完美地解决上面所提到的问题了。

我们现在再来讨论一下有没有必要不同的消息类型(短信、邮件、IM等)需要分开不同的的接口,其实是没必要的了。因为只要抽象了”模板“这个概念,消息类型自然我们就可以在模板上固化掉,只要传了模板Id,我就知道你发的是什么类型消息。

这样一来,我们最终会有两个接口:批量与单个发送接口。
 

回到问题上,他想要他调用我的接口有没有把短信发送成功,那我只要问他拿到手机号和文案,然后有以下步骤:

  1. 判断该手机号和文案在下发时是否正常(有没有真正调用下发短信的接口)
  2. 假设调用短信接口下发成功,那看下返回的回执(下发结果)是否正常

那目前我们在现有的接口,还是很完美地支持上面的问题的,对吧?只要我们记录了下发的结果和回执的信息,我们就可以告诉他所提供的手机号和文案究竟有没有下发到用户手上。

那今天他又过来问了:今天有很多人来反馈收不到验证码短信(不是全部人收不到,是大部分人),我想了解一下今天验证码短信下发的成功率是多少。

此时的我,只能去匹配(like %%)他的文案调用我的接口下发了多少人,调用短信服务商的API下发成功多少人,收到的成功回执(结果)有多少人。

通过匹配文案的方式最终也是可以告诉他结果的,但是这种是很傻X的做法。归根到底还是因为系统提供的服务还是太薄弱了。

那怎么解决上面所讲的问题呢?其实也很简单,既然匹配文案很傻X,那我给他这一批验证码的短信取个唯一的Id那不就可以了吗?

像我们去接入短信服务商一样,我们需要去新建一个短信模板,这个模板代表了你要发送的内容,新建模板后会给你个模板Id,你下发的时候指定这个模板Id就好了。

(编辑:盐城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读