前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Gin框架系列01:极速上手

Gin框架系列01:极速上手

作者头像
平也
发布2020-04-08 15:16:23
5170
发布2020-04-08 15:16:23
举报
文章被收录于专栏:平也平也

Gin是什么?

Gin是Go语言编写的web框架,具备中间件、崩溃处理、JSON验证、内置渲染等多种功能。

准备工作

本系列演示所有代码都在Github中,感兴趣的同学可以自行查阅,欢迎大家一起完善。

代码语言:javascript
复制
https://github.com/pingyeaa/golang-examples/tree/master/gin

没有安装配置Go语言环境的同学请先自行安装,这里不再赘述。首先,我们来创建工作目录gin

代码语言:javascript
复制
mkdir gin && cd gin

然后用go mod命令初始化项目,go mod是Go语言的包管理工具,官方推荐使用,有了它就不再受GOPATH的限制,可以在任何目录初始化项目。

代码语言:javascript
复制
go mod init gin

接下来安装gin库。

代码语言:javascript
复制
go get -u github.com/gin-gonic/gin

创建演示代码的入口文件main.go,当前项目结构大致如下。

代码语言:javascript
复制
.
├── go.mod
├── go.sum
└── main.go

编写代码

工作准备就绪之后,来开始今天的代码编写,以经典代码hello word为例。

实例化一个gin对象

代码语言:javascript
复制
r := gin.Default()

Default方法的主要作用是实例化一个带有日志、故障恢复中间件的引擎。

代码语言:javascript
复制
func Default() *Engine {
	debugPrintWARNINGDefault()
	engine := New()
	engine.Use(Logger(), Recovery())
	return engine
}

定义请求

定义一个GET请求的路由,参数一是路由地址,也就是在浏览器访问的相对路径,参数二是一个匿名函数,函数内部用于业务逻辑处理。

代码语言:javascript
复制
r.GET("/hello", func(c *gin.Context) {

})

我们就在函数内调用JSON方法返回数据。JSON的操作非常简单,参数一是状态码,参数二是JSON的内容。

代码语言:javascript
复制
r.GET("/hello", func(c *gin.Context) {
  c.JSON(200, gin.H{
    "msg": "Hello world!",
  })
})

JSON内容可以通过gin提供的H方法来构建,非常方便。

代码语言:javascript
复制
// H is a shortcut for map[string]interface{}
type H map[string]interface{}

运行

Run方法最终会调用内置http库的ListenAndServe方法来监听端口,如果不传参数默认监听80端口,也可以通过参数来变更地址和端口。

代码语言:javascript
复制
r.Run(":8081")

测试

在浏览器访问localhost:8081,如果看到如下提示即成功。

file
file

完整代码

代码语言:javascript
复制
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{
			"msg": "Hello world!",
		})
	})
	r.Run(":8081")
}

Go语言库代码示例,欢迎star https://github.com/pingyeaa/golang-examples

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-04-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Gin是什么?
  • 准备工作
  • 编写代码
    • 实例化一个gin对象
      • 定义请求
        • 运行
          • 测试
            • 完整代码
            • Go语言库代码示例,欢迎star https://github.com/pingyeaa/golang-examples
            相关产品与服务
            消息队列 TDMQ
            消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档