业务开发

本章节我们用一个简单的示例去演示一下go-zero中的一些基本功能。本节将包含以下小节:

演示工程下载

在正式进入后续文档叙述前,可以先留意一下这里的源码,后续我们会基于这份源码进行功能的递进式演示, 而不是完全从0开始,如果你从快速入门章节过来,这份源码结构对你来说不是问题。

点击这里下载演示工程基础源码

演示工程说明

场景

程序员小明需要借阅一本《西游记》,在没有线上图书管理系统的时候,他每天都要去图书馆前台咨询图书馆管理员,

  • 小明:你好,请问今天《西游记》的图书还有吗?
  • 管理员:没有了,明天再来看看吧。

过了一天,小明又来到图书馆,问:

  • 小明:你好,请问今天《西游记》的图书还有吗?
  • 管理员:没有了,你过两天再来看看吧。

就这样经过多次反复,小明也是徒劳无功,浪费大量时间在来回的路上,于是终于忍受不了落后的图书管理系统, 他决定自己亲手做一个图书查阅系统。

预期实现目标

  • 用户登录 依靠现有学生系统数据进行登录
  • 图书检索 根据图书关键字搜索图书,查询图书剩余数量。

系统分析

服务拆分

  • user
    • api 提供用户登录协议
    • rpc 供search服务访问用户数据
  • search
    • api 提供图书查询协议

[!TIP] 这个微小的图书借阅查询系统虽然小,从实际来讲不太符合业务场景,但是仅上面两个功能,已经满足我们对go-zero api/rpc的场景演示了, 后续为了满足更丰富的go-zero功能演示,会在文档中进行业务插入即相关功能描述。这里仅用一个场景进行引入。

注意:user中的sql语句请自行创建到db中去,更多准备工作见准备工作

添加一些预设的用户数据到数据库,便于后面使用,为了篇幅,演示工程不对插入数据这种操作做详细演示。

参考预设数据

  1. INSERT INTO `user` (number,name,password,gender)values ('666','小明','123456','男');