青训营

114 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第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:

image.png common:

image.png server 4.bound

image.png create note:

image.png Delete note

image.png mget note

![image.png](p6-juejin.byteimg.com/tos-cn-i-k3… querynote

image.png 运行结果:

通过postman进行测试


\