项目单个服务开发流程| 青训营笔记
这是我参与「第五届青训营 」伴学笔记创作活动的第 10 天
-
model目录下创建结构体,对应数据库的表
-
query目录下编写操作数据库函数,编写完成后在init.go文件里加上创建表的代码,例如用户表,之后编写测试文件,运行测试程序
err = GormClient.AutoMigrate(&model.User{}) -
编写IDL文件,需要明确请求参数的设计和响应值的设计,注意数据结构的编写和设计应该符合需求,然后在服务目录使用
kitex -module 项目名 -service 服务名 idl文件路径
生成代码以及build脚本
- 在service目录下,调用kitex生成的对应query目录对应的数据库操作函数
- 在handler.go生成函数里编写代码逻辑,大体思路为调用service.服务名.上一步在service目录下“服务名”代码里编写的操作函数,根据req请求值传进来的参数执行函数,最后返回Response需要的结果,然后执行build脚本文件,会生成启动服务的启动程序
- 服务部分基本完成接下来是网关rpc部分
- 在rpc目录下的代码文件编写函数,代码相应的逻辑处理可以放在这里,比如查询关注用户的信息,查询出来关注对应关系之后,需要根据id返回用户信息,就可以在这一步通过id调用查询用户信息服务,返回信息结果,如果是需要其他返回数据,这一步就应该返回相应在数据库里查找的并且封装好的数据结构
- 在handler目录下的对应服务名代码文件里编写函数,根据传参的类型使用不同函数接收参数,例如注册服务,获取用户名:
username:=c.Query("username")
调用rpc.Register(username,password)进行注册功能,同时注册成功或失败应返回接口需要的值和状态码,按照给定的接口需求编写返回值,包括有错误退出都应返回相应的状态码和信息
- 在项目根目录router.go文件注册路由
单个服务大体流程简介,新手小白第一次写,如有错误欢迎指正!