-
因为工作需要转go语言,需要学习Gin框架,写写学习记录,总结一下踩过的天坑,以诫后人。
1.配置go mod
(1)首先通过命令行进入项目的目录,例如:
(2)要使用go mod,在进入项目目录后输入如下代码:
go mod init awesomeProject//最后一个对应项目文件夹
(因为我们使用的是go mod来引入Gin框架,和传统方式不一样,它可以自动识别import后所用的包,并自动下载)上述步骤完成后,成功后会在目录里多出一个文件:
2.修改文件夹权限
(1)在正常情况下已经完成了所有配置,但是因为Mac OS的原因,文件夹权限不支持go mod自动下载文件,因此需要更改文件夹权限。
因为在go mod里面,自动下载的库文件都是存在/usr/local/go里面的,因此需要更改usr文件夹的权限,需要先找到usr文件夹的位置,一般是隐藏的,所以要通过如下指令显示隐藏文件:
defaults write com.apple.finder AppleShowAllFiles -boolean true;killall Finder
如果要再次隐藏,输入:
efaults write com.apple.finder AppleShowAllFiles -boolean false;killall Finder
也可以直接在搜索栏搜索usr,注意它里面要包含local文件夹。
(2)关闭Rootless
苹果从 OS X El Capitan 10.11 系统开始使用了 Rootless 机制,系统默认将会锁定 /system、/sbin、/usr 这三个目录。用户要获取这三个目录的写权限,需要关闭Rootless
1)重启 Mac
2)一直按住 Command+R,进入恢复模式。
3)在左上角的菜单实用工具中找到并打开 Terminal
输入如下命令:
csrutil disable
重启MAC,正常进入系统,此时已经可以给/system、/sbin、/usr 者几个目录进行权限更改
打开 Terminal
输入如下命令:
sudo chown -R $(whoami) /usr/local
- 在获得了权限后就可以通过go mod来下载库了,具体使用方法参考
- 这样,就完成了所有的配置,接下来检测是否可以使用Gin框架。
3.测试
在项目中写下如下代码:
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": "pingping",
})
})
r.Run() // listen and serve on 0.0.0.0:8080
}
运行成功后在命令行输入:
curl 127.0.0.1:8080/ping
如果成功则会返回