Gpt微信小程序搭建的前后端流程 - 后端基础框架的搭建(三)
Gpt微信小程序 只需要几个API,API上一小节也有讲到。直接用 gin 或者 beego 简单搭web服务器就够了。我们这里还用 go-micro微服务 去搭建,主要也是为了学以致用,把之前go-micro系列播客衔接上,以及后续好的横纵向扩展。
整体的代码框架:

pkg通用库中用到的db数据库,redis和mq队列,大部分都是前面go-micro系列有用到的。internal内部的微服务目录也是在之前go-micro单个微服务目录格式上调整。
这里主要看配置解析, 配置解析用得是toml库, github.com/BurntSushi/toml
pkg目录

配置的代码解析,用一个接口(基类) IConfig
pkg/config/config.go
type IConfig interface {
//服务名
AppName() string
//运行模式
AppEnv() string
//日志的定义
LogFilePath() string
LogMaxAge() int
LogMaxSize() int
LogBackUpNum() int
//mysql关系型数据库
SchemeConfig() map[string]*SchemeConfig
//redis
RedisConfig() map[string]*RedisConfig
//rabbitmq
AmqpConfig() map[string]*AmqpConfig
}
// log日志库基本配置
type LogConfig struct {
Type string `yaml:"Type",toml:"Type"`
LogDir string `yaml:"LogDir",toml:"LogDir"`
LogName string `yaml:"LogName",toml:"LogName"`
LogMaxAge int `yaml:"LogMaxAge",toml:"LogMaxAge"` // 日志的过期时间,单位为天
LogMaxSize int `yaml:"LogMaxSize",toml:"LogMaxSize"` // 日志文件的最大
LogBackUpNum int `yaml:"LogBackUpNum",toml:"LogBackUpNum"` // 日志文件最多保留个数
}
// 服务配置
type Config struct {
ConfPath string //配置路径
AppPath string //项目路径
Scheme map[string]*SchemeConfig `yaml:"Scheme",toml:"Scheme"`
Redis map[string]*RedisConfig `yaml:"Redis",toml:"Redis"`
Amqp map[string]*AmqpConfig `yaml:"Amqp",toml:"Amqp"`
Log *LogConfig `yaml:"Log",toml:"Log"`
}
// App 的基本配置
type AppBaseConfig struct {
AppName string `yaml:"AppName",toml:"AppName"`
Env string `yaml:"Env",toml:"Env"`
Version string `yaml:"Version",toml:"Version"` // 版本
}
type AppConfig struct {
Config
App AppBaseConfig
}
pkg/config/scheme.go
// 关系型数据库的配置
type SchemeConfig struct {
// mysql pgsql
Driver <

本文介绍Gpt微信小程序后端基础框架的搭建流程。使用go - micro微服务搭建,便于扩展。阐述了整体代码框架,包括pkg通用库和internal内部微服务目录。详细说明了配置解析,用toml库,还提及微服务初始化代码和启动脚本。最后推荐体验小柠AI智能聊天小程序。
最低0.47元/天 解锁文章
1059

被折叠的 条评论
为什么被折叠?



