Gin框架学习笔记

Gin基础知识

 

安装gin以及快速开始

首先在GOPATH目录src下创建所需的项目文件

MacdeMacBook-pro-3:~ mac$ mkdir -p /Users/mac/go/src/github.com/Threadalive/gin_test_project
MacdeMacBook-pro-3:~ mac$ cd $_

这里使用mod进行项目管理,修改GO111MODULE开启mod模式,执行初始化init,并使用go get 命令下载gin项目:

MacdeMacBook-pro-3:gin_test_project mac$ export GO111MODULE=on
MacdeMacBook-pro-3:gin_test_project mac$ go mod init
go: creating new go.mod: module github.com/Threadalive/gin_test_project
MacdeMacBook-pro-3:gin_test_project mac$ go get -v github.com/gin-gonic/gin@1.4

若访问github下载失败 ,可修改代理配置,使用七牛云或阿里云镜像仓库:

MacdeMacBook-pro-3:gin_test_project mac$ go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/,direct

下载成功后目录中出现go.mod以及go.sum,这两个文件记录项目的依赖即模块信息。

使用Goland打开项目,即可快速创建简单的helloworld 项目进行测试,使用Get方式接收并反馈。

运行项目,客户端发送请求,得到json格式反馈:

MacdeMacBook-pro-3:gin_test_project mac$ curl -X GET "http://localhost:8080/ping"
{"mseeage":"pong"}
MacdeMacBook-pro-3:gin_test_project mac$ 

请求路由

  • 多种请求

gin框架可接收http请求的各类方法,包括GET、POST、DELETE等等。

可通过直接绑定方法或使用handle函数进行说明,如下:

func main() {
	r := gin.Default()
	r.GET("/get", func(c *gin.Context) {
		c.String(200,"get")
	})
	r.POST("/post", func(c *gin.Context) {
		c.String(200,"post")
	})
	r.Handle("DELETE","/delete", func(c *gin.Context) {
		c.String(200,"delete")
	})
	//接收任意类型请求方法
	r.Any("/any", func(context *gin.Context) {
		context.String(200,"any")
	})
	r.Run()
}

其中Any函数能够接收所有类型的请求。测试如下:

MacdeMacBook-pro-3:gin_curl -X GET "http://localhost:8080/get" 
get
MacdeMacBook-pro-3:gin_test_project mac$ curl -X GET "http://localhost:8080/"
get
MacdeMacBook-pro-3:gin_test_project mac$ curl -X POST "http://localhost:8080/post"
post
MacdeMacBook-pro-3:gin_test_project mac$ curl -X DELETE "http://localhost:8080/delete"
delete
MacdeMacBook-pro-3:gin_test_project mac$ curl -X DELETE "http://localhost:8080/any"
any
MacdeMacBook-pro-3:gin_test_project mac$ 

 

  • 绑定静态文件夹

gin中绑定静态文件夹有3种方式:

  1. static()
  2. staticFS()
  3. staticFile()

新建router_static包,放置静态资源包assets,static,测试代码如下:

package main

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

func main() {
	r := gin.Default()
	//绑定静态资源路径
	r.Static("/assets","./assets")
	//绑定静态文件系统
	r.StaticFS("/static",http.Dir("static"))
	//绑定单个静态文件
	r.StaticFile("/favicon.ico","./favicon.ico")

	r.Run()
}

客户端访问结果:

MacdeMacBook-pro-3:gin_test_proje
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值