# 《大营销平台系统设计实现》 - 营销服务 第11节:抽奖API接口实现

作者:小傅哥
博客:https://bugstack.cn (opens new window)

沉淀、分享、成长,让自己和他人都能有所收获!😄

  • 本章难度:★★★☆☆
  • 本章重点:新增 big-market-api 模块,定义对外接口标准,并实现出3个抽奖服务接口。以及调整抽奖策略领域实现方式,满足接口单一职责。
  • 课程视频https://t.zsxq.com/17NyL5gvS (opens new window)

版权说明:©本项目与星球签约合作,受《中华人民共和国著作权法实施条例》 (opens new window) 版权法保护,禁止任何理由和任何方式公开(public)源码、资料、视频等内容到Github、Gitee等,违反可追究进一步的法律行动。

# 一、本章诉求

结合着前面两节(13、14) WEB UI 的开发,以及接口的 Mock 让前端调用。我们可以知道服务端应该提供的接口标准。所以我们本节会按照这样的一个接口标准设计服务端的接口,同时在做一些服务端自身的扩展。

关于前后端接口的标准定义,小傅哥在视频中提到到,通常在公司做开发时,这部分是由产品和前后端工程师对照着产品PRD文档进行评审后定义的。前端工程师按照标准先进行Mock接口,随着后端工程逐步开发完成后,在进行对接联调。

# 二、流程设计

在大营销的系统架构设计中,有一个 trigger 模块,专门用于提供触发操作。这里我们把 HTTP 调用RPC(Dubbo)调用定时任务MQ监听等动作,都称为触发操作。触发表示通过一种调用方式,调用到领域的服务上。

在大营销系统中,会给大家提供出 HTTP 接口,也会在后续提供 RPC 接口。RPC 就像 Dubbo 这样的框架,它的调用方式是需要对外提供接口描述性Jar,调用方拿到 Jar 包,就像本地调用接口一样,使用 RPC 框架,远程的调用到你的服务上。【关于这部分内容,在星球「码农会锁」的课程入口,基础教程中有 Dubbo 知识的案例讲解,小白可以补充学习】

那么因为为了让 HTTP 接口、RPC 接口,都能在一个标准下开发,所以本节会增加一个 big-market-api 模块,定义出接口信息和出入参对象。以便于分别可以实现本节所需的 HTTP 接口和后续所需的 RPC 接口。【注意;一般在大厂中,我们只需要定义 RPC 接口即可,因为 HTTP\小程序\APP 的接口,都是通过网关来调用的。网关会把 HTTP 请求转换为对应的 RPC 接口。这部分课程在星球中有API网关项目可以学习】

  • 定义 big-market-api 模块,由 big-market-trigger 实现出3个接口;装配策略接口(调用后将抽奖策略装配到缓存)、查询奖品列表、随机抽奖接口。
  • 在 big-market-domain 的抽奖策略新增加 IRaffleAward 策略奖品接口,并调整 IRaffleStock 抽奖库存接口,都直接由子类实现。IRaffleStrategy 抽奖策略接口由抽象类定义抽奖过程【这部分是前面章节实现的】,并有子类实现。