golang框架gin快速创建应用

安装

环境win10, go version go1.14.3,gin v1.6.3

编辑器:goland,

开启GO Modules(setting->go->go Gmodules-> enable)
设置代理: Appearance & behavior-> system Settings -> HTTP Proxy -> auto-detect proxy setting 设置为:https://mirrors.aliyun.com/goproxy/

//liunx设置代理
export GOPROXY=https://mirrors.aliyun.com/goproxy/
go get -u github.com/gin-gonic/gin
mkdir demo
go mod init demo

创建main.go文件

package main

import "github.com/gin-gonic/gin"

func main() {
    r := gin.Default()
    r.GET("/ping", func(c *gin.Context) {
        c.JSON(200, gin.H{
            "message": "pong",
        })
    })
    r.Run(":8080") // listen and serve on 0.0.0.0:8080
}

执行

go run main.go

访问:http://localhost:8080/ping

打包

go build

win下打包liunx

set GOARCH=amd64
set GOOS=linux

liunx下执行:

chmod +x demo
./demo
//后台运行
setsid ./demo

热更新:

go get -u github.com/cosmtrek/air

//此时你的gopath bin 目录下会有个air的可执行文件,到你项目目录下执行
air 

swagger

//执行
go get -u github.com/swaggo/swag/cmd/swag
//执行初始化
swag init
//修改gin router, 增加以下, host是你的地址
url := ginSwagger.URL("http://" + host + "/swagger/doc.json")
r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler, url))

配置:
配置暂时选用gopkg.in/ini.v1

新建config目录,里面新建config.go和config.ini

config.go代码如下:

import (
    "gopkg.in/ini.v1"
)

var (
    Cfg = new(config)
)

type config struct {
    Server  `ini:"server"`
}

type Server = struct {
    Host string `ini:"host"`
}

func InitConfig(path string) {
    err := ini.MapTo(Cfg, path)
    if err != nil {
        panic(err)
    }
}

config.ini文件代码如下

[server]
host=127.0.0.1:8081

最后再入口或者其他地方初始配置,例如在main.go中

package main

import (
    "jChart/config" //jChart是你自己mod名
)

//@title 搜索引擎
//@version 1.0
//@description 基于elasticsearch的搜索引擎程序
func main() {
    //初始化配置
    config.InitConfig("config/config.ini")
    //初始化路由
        ...
    _ = r.Run(config.Cfg.Server.Host)
}

里面的

以上就搭建了一个基础的基于gin的开发环境和框架, 如果需要学习更完善的系统,可以学习下http://mydearzwj.gitee.io/go-admin-site/ 这个代码,挺不错

这个文档不错,比较全面:http://www.topgoer.com/

标签: 无

发表评论: