项目单个服务开发流程| 青训营笔记

98 阅读2分钟

项目单个服务开发流程| 青训营笔记

这是我参与「第五届青训营 」伴学笔记创作活动的第 10 天

  1. model目录下创建结构体,对应数据库的表

  2. query目录下编写操作数据库函数,编写完成后在init.go文件里加上创建表的代码,例如用户表,之后编写测试文件,运行测试程序

    err = GormClient.AutoMigrate(&model.User{})
    
  3. 编写IDL文件,需要明确请求参数的设计和响应值的设计,注意数据结构的编写和设计应该符合需求,然后在服务目录使用

kitex -module 项目名 -service 服务名 idl文件路径

生成代码以及build脚本

  1. 在service目录下,调用kitex生成的对应query目录对应的数据库操作函数
  2. 在handler.go生成函数里编写代码逻辑,大体思路为调用service.服务名.上一步在service目录下“服务名”代码里编写的操作函数,根据req请求值传进来的参数执行函数,最后返回Response需要的结果,然后执行build脚本文件,会生成启动服务的启动程序
  3. 服务部分基本完成接下来是网关rpc部分
  4. 在rpc目录下的代码文件编写函数,代码相应的逻辑处理可以放在这里,比如查询关注用户的信息,查询出来关注对应关系之后,需要根据id返回用户信息,就可以在这一步通过id调用查询用户信息服务,返回信息结果,如果是需要其他返回数据,这一步就应该返回相应在数据库里查找的并且封装好的数据结构
  5. 在handler目录下的对应服务名代码文件里编写函数,根据传参的类型使用不同函数接收参数,例如注册服务,获取用户名:
username:=c.Query("username")

调用rpc.Register(username,password)进行注册功能,同时注册成功或失败应返回接口需要的值和状态码,按照给定的接口需求编写返回值,包括有错误退出都应返回相应的状态码和信息

  1. 在项目根目录router.go文件注册路由

单个服务大体流程简介,新手小白第一次写,如有错误欢迎指正!