这是我参与「第五届青训营 」伴学笔记创作活动的第 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…