Go框架三件套与大项目初步制作| 青训营笔记

72 阅读2分钟

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

Gorm作为第一个使用框架目前使用在登录和注册接口,Gorm的约定(默认),Gorm使用名为ID的字段作为主键,是约定俗成的。 对于数据库的设计包含用户名,密码,ID,定义结构体包含这些变量即可。

数据传输

数据库连接

本地创建数据库并连接是最基本的,在主函数中Initrouter初始化数据库连接,在连接数据库时要用到dsn := "root:root@tcp(127.0.0.1:3306)/douyin?charset=utf8mb4&parseTime=True&loc=Local",root是数据库名,第二个root是我的数据库密码,tcp连接ip,douyin是项目数据库名称。

数据迁移

注册接口伪代码

注册接口要实现三个基本功能: 用户创建 用户名不能与已注册重复 密码设置符合规范

func KeyInfo(password string)(*pojo.User,error){,目前需要三个函数,一个作为主控制函数,保证验证方式的推进,首先对用户名进行判断,gorm框架中db.where().find()可以对库的数据逐块儿进行扫描。最后一个函数对密码做出一定规范。 在对各条件判断时采用gin框架中的Json,对结构体中所有判断做出一个返回,并打印权值,目前权鉴了解不多暂时未写。

rpc

同步调用

rpc远程过程调用:

  • 传输协议(http1.1、http2.0、wensocket协议、http3.0)
  • 传输格式(JSON、Protobuf、xml)

异步调用

消息队列  kafka,activeMQ,rocketMQ

socket通信

server端,client端

server端  伪代码

listener  :=net.listen()   //获取监听器对象

conn :=listener.Accept() //等待连接

conn.read() //读到客户端发送的数据

conn.write() //向客户端发送数据

conn.close() //关闭连接

listener.close //关闭监听器


 client端    伪代码

 conn :=net.Dial() //连接服务端
 conn.write() //发送数据
 conn.read() // 接收返回数据
 conn.close() // 关闭连接

RPC

RPC对server端和client端调用

  • 注册rpc服务对象
  • 创建监听器
  • 建立连接
  • 绑定rpc服务到连接上

部分参考链接: rpc:blog.csdn.net/sdjpy1208/a…

GORM V2 中文文档 · 看云 (kancloud.cn)