您的位置 首页 golang

一步一步golang写后台(一)gin入门

golang是一门十分热门的语言,性能很高。开发效率也几乎可以和Python相提并论。很多开源软件的流行,像kubernetes、docker、etcd等等,更是将golang的发展推向了一个高度。

从本篇开始,我们将一步一步介绍怎样用golang来搭建一个web服务的后台。预计会包括gin介绍、数据库、gin中间件、jwt认证、权限控制、模板、打包等等。

我们首先选定一个rest框架,这里我们选择gin,这是一个性能高效,使用简单,十分流行的一个框架。

需要注意的是gin要求go的版本是1.11+,所以使用之前请先检查您的golang版本,使用以下命令:

 $ go version
go version go1.14.3 darwin/amd64  

我这里使用的是1.14.3的版本。现在我们来创建一个目录用来作为我们项目的目录:

 $ mkdir gosvc
$ cd gosvc/  

我们这里使用go module来管理我们的依赖(注意上面创建的目录不是在GOPATH目录下),我们先来初始化一下go module:

 ~/golangdemo/gosvc$ go mod init github.com/zhuyijing/gosvc
go: creating new go.mod: module github.com/zhuyijing/gosvc
~/golangdemo/gosvc$ ls
go.mod
~/golangdemo/gosvc$ cat go.mod
module github.com/zhuyijing/gosvc

go 1.14  

使用go mod init命令来初生成我们的go.mod文件,这个我给我的package起名为 github.com/zhuyijing/gosvc ,你可以换成你自己的命名。通常是 github.com/用户名/项目名

现在我们来创建一个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() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")
}  

然后在输入一下命令来下载依赖:

 ~/golangdemo/gosvc$ go mod tidy  

运行这条命令会自动下载依赖并且更新go.mod文件,同时会生成一个go.sum的文件。现在我们的目录看起来是这样的:

 ~/golangdemo/gosvc$ tree .
.
├── go.mod
├── go.sum
└── main.go

0 directories, 3 files  

查看go.mod文件,你会发现多了一行:

 $ cat go.mod
module github.com/zhuyijing/gosvc

go 1.14

require github.com/gin-gonic/gin v1.6.3      // gin依赖  

现在来运行我们的代码:

 $ go run main.go
[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    /ping                     --> main.main.func1 (3 handlers)
[GIN-debug] Environment variable PORT is undefined. Using port :8080 by default
[GIN-debug] Listening and serving HTTP on :8080  

看看,我们的代码已经成功运行在8080端口了。我们来尝试访问一下,另开一个终端窗口,输入以下命令:

 $ curl 
{"message":"pong"}  

现在一个最简单的rest服务已经运行起来了。下一节,我们将介绍更多gin的高级用法。

文章来源:智云一二三科技

文章标题:一步一步golang写后台(一)gin入门

文章地址:https://www.zhihuclub.com/97214.shtml

关于作者: 智云科技

热门文章

网站地图