Golang Gin 框架入门介绍(一)

举报
liuzhen007 发表于 2021/11/21 23:03:58 2021/11/21
【摘要】 目录前言正文结尾前言Gin 是使用纯 Golang 语言实现的 HTTP Web 框架,Gin 的接口设计简洁,性能极高,现在被广泛使用。我司的 Web 后端服务基本是都是基于 Gin 开发的。正文安装首次使用 Gin 框架时,需要先进行安装,命令如下:go get -u github.com/gin-gonic/gin可能会出现如下报错信息:# cd .; git clone -- htt...

目录

  • 前言
  • 正文
  • 结尾

前言

Gin 是使用纯 Golang 语言实现的 HTTP Web 框架,Gin 的接口设计简洁,性能极高,现在被广泛使用。我司的 Web 后端服务基本是都是基于 Gin 开发的。

正文

安装

首次使用 Gin 框架时,需要先进行安装,命令如下:

go get -u github.com/gin-gonic/gin

可能会出现如下报错信息:

# cd .; git clone -- https://github.com/gin-contrib/sse /Users/lz/go/src/github.com/gin-contrib/sse
Cloning into '/Users/lz/go/src/github.com/gin-contrib/sse'...
fatal: unable to access 'https://github.com/gin-contrib/sse/': LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443
package github.com/gin-contrib/sse: exit status 128

一般都是网络问题,可以多重试几次。

使用

在使用 Gin 的工具库之前,先要导入依赖库,具体代码如下:

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

具体使用如下:

r := gin.Default()

实例演示

编写一段示例代码:

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()
}

通过代码可以知道,我们定义了 API 为 /ping 的服务接口。

然后我们编译代码,命令:

go build

编译成功后,会生成可执行程序 gin-demo,运行可执行程序,具体执行过程如下:

liuzhen-3:gin-demo lz$ ./gin-demo
[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 端口。

接下来,我们测试一下这个服务是不是好用,在浏览器中输入如下地址:

http://localhost:8080/ping

运行结果如下图所示:

image.png

通过结果可以知道,服务是正常的。

结尾

综上所述,Gin 框架使用起来还是非常简单的,上手也非常方便。感兴趣的话,小伙伴们自己就动手试试吧!下面的内容我们继续深入分析 Gin 框架的源码部分,敬请期待!

作者简介:大家好,我是 liuzhen007(Data-Mining),是一位音视频技术爱好者,同时也是CSDN博客专家、华为云社区云享专家、签约作者,欢迎关注我分享更多干货!


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。