GO Web 项目初次实战总结
项目参考: https://www.pianshen.com/article/7828308085/
代码原创作者回首笑人间
本章重点
- GO web项目的项目结构
- GO web项目的配置文件和路由
- 定义响应的Handler层
- 自定义错误码
- GO web项目中两个常用包的重点解析
"github.com/spf13/viper"
"github.com/gin-gonic/gin"
web项目目录结构
配置文件
如上图所示,项目的配置文件分为2部分conf包下的config.yaml和config包下的config.go
config.yaml:
mysql:
max_idle_conns: 50 #最大空闲连接数
source_name: root:root@tcp(127.0.0.1:3306)/test?parseTime=true&charset=utf8&loc=Local
addr: 127.0.0.1:9090 #HTTP绑定端口`在这里插入代码片`
config.go
func Init() error{
if err := Config();err!=nil{
return err;
}
return nil
}
/**
Config viper解析配置文件
*/
func Config()error{
viper.AddConfigPath("conf")
viper.SetConfigName("config")
if err:= viper.ReadInConfig(); err !=nil{
return err
}
return nil
}
Config方法中调用viper(后面详细解释)来解析配置文件
项目逻辑顺序
main方法如下
func main(){
//加载配置文件
if err := config