Go项目 | 青训营笔记

61 阅读2分钟

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

项目搭建

今天主要完成的项目的搭建,主要搭建的内容如下

路由

通过配置路由,让请求由对应的Controller进行处理,目前是把基础接口、互动接口、社交接口初步搭好了,就等后面进行开发

常量

我觉得定义常量是很有必要的,想请求参数什么的这些,可以用常量去定义,万一有一天改参数了,写的都是字符串的话,人都改没了。还有就是类似一些固定名字,打印Log的文字,都抽取了常量,代码看起来更加的优雅。

工具类

我觉得抽取工具类也是非常有必要的,目前我封装的工具类有Redis、RabbitMQ、JSON、时间、token,这样子我直接调用工具类的方法,就可以实现Redis字符串存取和集合操作、RabbitMQ发送消息、序列化与反序列化、时间的格式化、token的校验、token的取值

整合框架

目前整合进来的Gin、GORM,以及其他的例如token、oss等等的中间件,具体的还在探索,一边学习一边写,包括思考怎么对代码进行优化,这些都是提升自己的方法

整合OSS

目前整合的是阿里云的OSS对象存储,目的在于返回的视频链接,用户可以比较快的加载出来,而不是从服务器的小水管接水。

一些全局的配置

我对全局做了异常捕获,对于出错的情况,统一进行异常处理并返回错误消息

配置拦截器,类似Java SpringBoot框架中使用的PreHandler一样,进行拦截,在这里进行token的验证,这样子能进去controller方法的,说明一定是合法的token,此时controller就可以方向的拿取token使用,减少很多的冗余代码。

包装了一个异常处理的函数,可以传入一个message,然后进行统一错误返回,这样子减少了一些冗余代码。