这是我参与「第三届青训营 -后端场」笔记创作活动的的第3篇笔记
实战项目-Go语言笔记服务
项目技术栈
语言 go
底层存储 mysql
服务注册 etcd
RPC框架 kitex
ORM框架 GORM
HTTP框架 Gin
链路追踪 JARGER
代码解释
标题和内容是可选,如果不传入参数,默认是nill
项目代码目录:
idl : thrift/proto接口定义文件
kitex_gen Kitex自动生成的代码
pkg:
1.contants: total,notes,noteID查询的时候的参数
limit是分页的参数
2.errno : 表示错误信息
把error类型转换为ErrNo类型
用go语言中的errors.As进行类型判断
3.middleware 中间件: 中间件是一类连接软件组件和应用的计算机软件,它包括一组服务。以便于运行在一台或多台机器上的多个软件通过网络进行交互。该技术所提供的互操作性,推动了一致分布式体系架构的演进,该架构通常用于支持并简化那些复杂的分布式应用程序,它包括web服务器、事务监控器和消息队列软件。
在拓展过程中,要记得两点原则:
1.中间件和套件都只允许在初始化Server,Client的时候设置,不允许动态修改。
2.后设置的会覆盖先设置的。
实际上一个中间件就是一个输入是Endpoint,输出也是Endpoint的函数,这样保证了对应用的透明性,应用本身并不会知道是否被中间件装饰的。由于这个特性,中间件可以嵌套使用。
中间件是串联使用的,通过调用传入的next,可以得到后一个中间件返回的response(如果有)和err,据此作出相应处理后,向前一个中间件返回err(无比判断next err返回,勿吞了err)或者设置response。 client:
common:
server
4.bound
create note:
Delete note
mget note
![image.png](p6-juejin.byteimg.com/tos-cn-i-k3… querynote
运行结果:
通过postman进行测试
\