本章节我们用一个简单的示例去演示一下go-zero中的一些基本功能。本节将包含一下小节:
演示工程下载
在正式进入后续文档叙述前,可以先留意一下这里的源码,后续我们会基于这份源码进行功能的递进式演示, 而不是完全从0开始,如果你从快速入门章节过来,这份源码结构对你来说不是问题。
点击这里下载演示工程基础源码
演示工程说明
场景
程序员小明需要借阅一本《西游记》,在没有线上图书管理系统的时候,他每天都要去图书馆前台咨询图书馆管理员,
- 小明:你好,请问今天《西游记》的图书还有吗?
- 管理员:没有了,明天再来看看吧。
过了一天,小明又来到图书馆,问:
- 小明:你好,请问今天《西游记》的图书还有吗?
- 管理员:没有了,你过两天再来看看吧。
就这样经过多次反复,小明也是徒劳无功,浪费大量时间在来回的路上,于是终于忍受不了落后的图书管理系统, 他决定自己亲手做一个图书查阅系统。
预期实现目标
- 用户登录 依靠现有学生系统数据进行登录
- 图书检索 根据图书关键字搜索图书,查询图书剩余数量。
系统分析
服务拆分
- user
- api 提供用户登录协议
- rpc 供search服务访问用户数据
- search
- api 提供图书查询协议
Tip 这个微小的图书借阅查询系统虽然小,从实际来讲不太符合业务场景,但是仅上面两个功能,已经满足我们对go-zero api/rpc的场景演示了, 后续为了满足更丰富的go-zero功能演示,会在文档中进行业务插入即相关功能描述。这里仅用一个场景进行引入。
注意:user中的sql语句请自行创建到db中去,更多准备工作见准备工作
添加一些预设的用户数据到数据库,便于后面使用,为了篇幅,演示工程不对插入数据这种操作做详细演示。
- api 提供图书查询协议
参考预设数据
INSERT INTO `user` (number,name,password,gender)values ('666','小明','123456','男');