Goland从1.11版本起就开始导入了GO Module功能,这样也不需要再将library给放入project当中占用空间,此外Go Module也能够防止别人被GOPATH误导。
首先我们先到使用专案的根目录
cd /<path>/<of>/<your>/<project name>
接下来我们初始化该project的GO MOD
go mod init <project name>
成功初始化的话,应该会在该路径下产生名为go.mod
的档案,而该档案就是用来记录专案内所使用到的所有第三方套件。
一样到刚clone完的go project当中,输入以下指令
go mod download
成功执行该指令的话,会将go.mod
中所定义的所有library都给下载下来,但除了该指令外,在执行go build
或是go test
时,也会自动下载library并新增至go.mod
当中,并产生出最新的go.sum
以确保library有更新。
透过该指令安装并新增新的module至go.mod当中
go get <module url>
移除在go.mod
当中不必要、未被使用的module
go mod tidy
透过该指令打印出所有go.mod中的module
go list -m all
从这章节开始我们将进入Web的世界,那根据geeksforgeeks统计的2020数据,我们将挑选目前星星数最多的backend framework,也就是Gin来进行解说与教学。
Gin的优势:
....等
geeksforgeeks统计资料
hackernoon统计资料
首次开发请使用go get
指令来安装Gin
$ go get github.com/gin-gonic/gin
更新的话则是透过 go get -u
$ go get -u github.com/gin-gonic/gin
go mod init
gin
这个packageimport (
"github.com/gin-gonic/gin"
)
package main
import (
"github.com/gin-gonic/gin"
)
func main() {
app := gin.Default()
app.GET("/hello/:name", func(c *gin.Context) {
name := c.Param("name")
c.JSON(200, gin.H{
"message": "hello " + name,
})
})
err := app.Run(":8080")
if err != nil {
panic(err)
}
}
go run main.go 3959 23:40:05
[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.
[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
- using env: export GIN_MODE=release
- using code: gin.SetMode(gin.ReleaseMode)
[GIN-debug] GET /hello/:name --> main.main.func1 (3 handlers)
[GIN-debug] Listening and serving HTTP on :8080
{"message":"hello :name"}
到这里我们的第一个gin application就完成罗。
这章节我们简述了go mod以及gin,并透过他们做出了一个简易的application,那在下个章节会透过docker-compose架出一个简便的测试环境,以便往後再搭配database或是cache使用时,都能简单地利用不同container进行串接。
https://www.geeksforgeeks.org/top-5-golang-frameworks-in-2020/
https://hackernoon.com/the-myth-about-golang-frameworks-and-external-libraries-93cb4b7da50f
<<: 【第十五天 - Flutter 官方 CodeLab Get-To-Know 活动报名教学(下)】
>>: 【Day 17】Algorithm & Recursion 演算法 & 递回
此篇会探讨 container 与 wrapper 用法,会着重在 wrapper 的探讨。 在开...
工作进度流水帐 因应前篇所说,现在开始都作为简单的工作纪录,待整个作品做完这几篇才会更新成正式的心得...
今天用这个阳春的版面来介绍版面、字体、图示还有间距的设定。刚刚跟接案的客户谈完流程,也收了头款,大家...
这一篇来个中场回亿 D1~D2: 完成 Xcode 基本架设 D3~D6: 完成公司基本资料的拉取 ...
Span可以做到的事情有很多,如 -更改特定位置的字体颜色/大小 -新增项目符号 -可点击 -换行等...