首页 > 其他分享 >Gin

Gin

时间:2024-12-27 13:18:59浏览次数:3  
标签:err app gin go Gin config App

1.安装

  • 新建一个目录GinTest
    执行
  • go env -w GO111MODULE=on
  • go env -w GOPROXY=https://goproxy.cn,direct
  • go mod init test
  • go get -u github.com/gin-gonic/gin
    新建main.go
package main

import (
    "github.com/gin-gonic/gin"
    "net/http"
)

func main() {
    r := gin.Default()

    // 测试路由
    r.GET("/ping", func(c *gin.Context) {
        c.String(http.StatusOK, "pong")
    })

    // 启动服务器
    r.Run(":8080")
}

2.配置文件

  • config.yaml
app: # 应用基本配置
env: local # 环境名称
port: 8888 # 服务监听端口号
app_name: gin-app # 应用名称
app_url: http://localhost # 应用域名
  • config/config.go
type Configuration struct {
	App App `mapstructure:"app" json:"app" yaml:"app"`
}
  • config/App.go
type App struct {
	Env     string `mapstructure:"env" json:"env" yaml:"env"`
	Port    string `mapstructure:"port" json:"port" yaml:"port"`
	AppName string `mapstructure:"app_name" json:"app_name" yaml:"app_name"`
	AppUrl  string `mapstructure:"app_url" json:"app_url" yaml:"app_url"`
}
  • global/app.go
    go.mod的module名+包名
import (
	"github.com/spf13/viper"
	"lwx1/config"
)

type Application struct {
	ConfigViper *viper.Viper
	Config      config.Configuration
}

var App = new(Application)
  • bootstarp/config.go
import (
	"fmt"
	"github.com/fsnotify/fsnotify"
	"github.com/spf13/viper"
	"lwx1/global"
	"os"
)

func InitializeConfig() *viper.Viper {
	// 设置配置文件路径
	config := "config.yaml"
	// 生产环境可以通过设置环境变量来改变配置文件路径
	if configEnv := os.Getenv("VIPER_CONFIG"); configEnv != "" {
		config = configEnv
	}

	// 初始化 viper
	v := viper.New()
	v.SetConfigFile(config)
	v.SetConfigType("yaml")
	if err := v.ReadInConfig(); err != nil {
		panic(fmt.Errorf("read config failed: %s \n", err))
	}

	// 监听配置文件
	v.WatchConfig()
	v.OnConfigChange(func(in fsnotify.Event) {
		fmt.Println("config file changed:", in.Name)
		// 重载配置
		if err := v.Unmarshal(&global.App.Config); err != nil {
			fmt.Println(err)
		}
	})
	// 将配置赋值给全局变量
	if err := v.Unmarshal(&global.App.Config); err != nil {
		fmt.Println(err)
	}

	return v
}
  • main.go
import (
	"github.com/gin-gonic/gin"
	"lwx1/bootstrap"
	"lwx1/global"
	"net/http"
)

func main() {
	// 初始化配置
	bootstrap.InitializeConfig()

	r := gin.Default()

	// 测试路由
	r.GET("/ping", func(c *gin.Context) {
		c.String(http.StatusOK, "pong")
	})

	// 启动服务器
	r.Run(":" + global.App.Config.App.Port)
}

标签:err,app,gin,go,Gin,config,App
From: https://www.cnblogs.com/lwx11111/p/18635479

相关文章

  • nginx 配置rtsp服务
    nginx配置rtsp服务配置Nginx提供RTSP服务涉及安装和编译第三方模块nginx-rtsp-module,并进行相应的配置。以下是详细的步骤和配置示例:步骤1:安装依赖和工具在Ubuntu上,安装必要的编译工具和依赖包:sudoapt-getupdatesudoapt-getinstallbuild-essentiallibpcre3-......
  • Prompt Engineering
    提示工程指南https://www.promptingguide.ai/zhhttps://github.com/dair-ai/Prompt-Engineering-Guide 提示工程(PromptEngineering)是一门较新的学科,关注提示词开发和优化,帮助用户将大语言模型(LargeLanguageModel,LLM)用于各场景和研究领域。掌握了提示工程相关技能将有......
  • 使用容器运行Nginx应用及Docker命令
    使用容器运行Nginx应用及Docker命令一、使用容器运行Nginx应用1.1使用dockerrun命令运行Nginx应用1.1.1观察下载容器镜像过程查找本地容器镜像文件执行命令过程一:下载容器镜像#dockerrun-dnginx:latestUnabletofindimage'nginx:latest'locallylatest:......
  • CF1534G A New Beginning 题解
    题目传送门前置知识曼哈顿距离与切比雪夫距离的相互转化解法将切比雪夫距离转换成曼哈顿距离,有新坐标为\((\frac{x_{i}+y_{i}}{2},\frac{x_{i}-y_{i}}{2})\),因带一个\(\frac{1}{2}\)的常数不妨提出来得到\((x_{i}'=x_{i}+y_{i},y_{i}'=x_{i}-y_{i})\)最后统一乘起来。此......
  • 启动应用程序出现WSearchMigPlugin.dll找不到问题
    在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包文件不完整造成,原因可能是某些系统防护软件将重要的DLL文件识别为可疑,阻止并放入了隔离单里,还有一些常见的DLL文件缺少是因为系统没有安装齐全的微软运行库,还有部分情况是因为......
  • docker配置nginx
    docker部署项目是老生常谈的话题了。此文仅供给从未部署过的开发者查阅安装docker,这个自行百度。参考链接https://www.runoob.com/docker/centos-docker-install.html基于docker安装nginx镜像,dockerpullnginx运行docker容器,dockerrun-p8090:80--nameng-dnginx创......
  • 在Nginx上配置并开启WebDAV服务的完整指南
    在Nginx上配置并开启WebDAV服务的完整指南如何在Nginx上开启WebDAV服务要在Nginx上开启WebDAV服务,你需要配置Nginx以支持WebDAV请求。以下是详细的步骤:1.确保Nginx安装了WebDAV模块Nginx的WebDAV功能由http_dav_module​模块提供。默认情况下,这个模块是......
  • Gin框架配置ip地址白名单教程
    在Gin框架中实现IP白名单,可以通过中间件的方式检查客户端的IP地址是否在白名单中。如果不在白名单中,返回拒绝访问的响应。以下是实现教程:实现步骤定义IP白名单创建一个列表存储允许访问的IP地址。编写中间件创建一个Gin中间件,用于拦截请求并检查客户端IP......
  • Nginx 学习
    Nginx主要功能:Web服务器:Nginx可以作为Web服务器,接收客户端的HTTP请求,根据配置文件中的规则返回相应的网页内容反向代理:Nginx可以作为反向代理服务器,位于后端服务器(如应用服务器、数据库服务器等)之前,接收来自客户端的请求,然后将请求转发给后端服务器处理。负载均衡:Nginx......
  • 赛诸葛数字化智能中台系统login接口SQL注入漏洞复现 [附POC]
    文章目录赛诸葛数字化智能中台系统login接口SQL注入漏洞复现[附POC]0x01前言0x02漏洞描述0x03影响版本0x04漏洞环境0x05漏洞复现1.访问漏洞环境2.构造POC3.复现赛诸葛数字化智能中台系统login接口SQL注入漏洞复现[附POC]0x01前言免责声明......