go语言学习(二)——Gin 框架简介

GoWeb开发有很多框架,如Beego、Gin、Revel、Echo、IRis等,学习框架可以快速做开发,对比常见goweb框架,通过其github的活跃度,维护的team,生产环境中的使用率以及师兄的推荐,个人选择了学习Gin这个轻巧框架。

1. Gin框架简介

Gin是一个golang的微框架,基于 httprouter,封装比较优雅,API友好,源码注释比较明确。具有快速灵活,容错率高,高性能等特点。框架更像是一些常用函数或者工具的集合。借助框架开发,不仅可以省去很多常用的封装带来的时间,也有助于团队的编码风格和形成规范。

Gin 包括以下几个主要的部分:

  • 设计精巧的路由/中间件系统;
  • 简单好用的核心上下文 Context;
  • 附赠工具集(JSON/XML 响应, 数据绑定与校验等)。

Gin 是一个 Golang 写的 web 框架,,它提供了类似martini但更好性能(路由性能约快40倍)的API服务。

官方地址:https://github.com/gin-gonic/gin
在这里插入图片描述

2. 安装Gin

打开终端,输入以下命令:

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

此过程可能巨慢,可使用代理,解决办法如下:

go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io,direct

安装完成后可以看到gopath的pkg目录下多了一些包:
在这里插入图片描述
此时github.com里面的包还是用不了的,解决办法如下:

  go mod init gin
  go mod edit -require github.com/gin-gonic/gin@latest

使用时要导入包:

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

3. Gin框架的简单应用

3.1 程序代码

创建一个项目ginhello,新建一个go文件(ginhello.go):

package main

import (
    "github.com/gin-gonic/gin"
    "net/http"
)

func main() {
    router := gin.Default()
    router.GET("/", func(c *gin.Context) {
        c.String(http.StatusOK, "My first gin program.")
    })
    router.Run(":8000") 
}

1、router:=gin.Default():这是默认的服务器。使用gin的Default方法创建一个路由Handler;
2、然后通过Http方法绑定路由规则和路由函数。不同于net/http库的路由函数,gin进行了封装,把request和response都封装到了gin.Context的上下文环境中;
3、最后启动路由的Run方法监听端口。也可以用http.ListenAndServe(":8080", router),或者自定义Http服务器配置。

下面看下Run方法的实现:

func (engine *Engine) Run(addr ...string) (err error) {
    defer func() { debugPrintError(err) }()

    address := resolveAddress(addr)
    debugPrint("Listening and serving HTTP on %s\n", address)
    err = http.ListenAndServe(address, engine)
    return
}

使用gin框架简单几行代码,就能实现一个web服务。使用gin的Default方法创建一个路由handler。然后通过HTTP方法绑定路由规则和路由函数。不同于net/http库的路由函数,gin进行了封装,把request和response都封装到gin.Context的上下文环境。最后是启动路由的Run方法监听端口。除了GET方法,gin也支持POST,PUT,DELETE,OPTION等常用的restful方法。

3.2 运行结果

执行以下命令:

go run gin_hello.go

运行结果如下:
在这里插入图片描述
打开浏览器也可以看结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值