知识分享之Golang——和我一起搭建一个快速开发框架(四)

本文介绍了一个基于Golang的快速开发框架,通过整合gin框架简化Web应用开发流程。该框架适用于Windows 10环境,使用Golang 1.17版本,并提供了初始配置示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

知识分享之Golang——和我一起搭建一个快速开发框架(四)

背景

知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家,来进行共同学习。欢迎大家进行持续关注。

知识分享系列目前包含Java、Golang、Linux、Docker等等。

开发环境

  • 系统:windows10
  • 语言:Golang
  • golang版本:1.17
  • 代码仓库:FastDevelopGo

内容

日常我们使用golang开发项目时经常需要使用一些基础组件,每次新建较为繁琐,现有市面上的感觉不太适合自己,因此决定自己搭建一套,同时开源出来分享给大家使用,欢迎大家提出各种需求。
下面我们开始对于该框架进行继续完善,本节我们要完成的需求是:

  • 增加gin框架,便于我们后续的web开发使用。

1、进行安装gin

go get -u github.com/gin-gonic/gin

2、编写如下代码进行作为使用gin框架初始使用

package web

import (
    "FastDevelopGo/src/base/log"
    "FastDevelopGo/src/base/web/router"
    "github.com/gin-gonic/gin"
    "github.com/spf13/viper"
    "go.uber.org/zap"
)

type WebConfig struct {
    Host string `json:"host,omitempty"`
    Port string `json:"port,omitempty"`
}

// web配置文件对象,用于全局的配置初始使用
var webConfig WebConfig

func InitGin() {
    initGinConfig()
    startGin()
}

// 初始web相关的配置文件和对象
func initGinConfig() {
    // 初始读取配置文件
    if err := viper.UnmarshalKey("web", &webConfig); err != nil {
        log.Logger.Error("读取配置文件时发生致命错误:", zap.Error(err))
        return
    }
}

// 核心启动gin框架函数,主函数
func startGin() {
    // 初始化基础配置
    r := gin.Default()
    // 初始化网关
    router.InitRouter()
    r.Run(webConfig.Host + ":" + webConfig.Port)
}
package router

func InitRouter() {
    //TODO 在这里我们进行初始化各种网关配置
    //TODO 初始化默认静态资源
    //TODO 初始化默认异常处理网关
    //TODO 初始化默认模板目录
}

3、在原有配置文件基础中进行补充web相关配置

# 这是一个默认的配置文件
[sys]
conf_type="toml"
conf_dir="conf/app"
conf_name="base"

[log]
level="debug"
encoding="json"
outputPaths=["stdout", "./tmp/logs"]
errorOutputPaths=["stderr"]
[log.initialFields]
foo = "bar"
[log.encoderConfig]
messageKey="message"
levelKey="level"
levelEncoder="lowercase"

[web]
host = "0.0.0.0"
port = "8080"

4、进行启动并测试,观察工作台日志输出,已正常使用。

[GIN-debug] Listening and serving HTTP on 0.0.0.0:8080

下一步我准备在其中增加相关初始的异常处理和静态资源加载,欢迎大家持续关注该框架发展。

注:
这个框架我的初步想法时后续增加可视化页面、代码快速生成模块、项目框架快速生成模块等等,有其他需求想法的小伙伴欢迎在评论区留言或直接到代码仓库中提出宝贵的issue

欢迎大家积极start,大家的关注是我最大的动力。

本文声明:
88x31.png
知识共享许可协议
本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CN華少

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值