使用Gin编写接口 - Go语言中文社区

使用Gin编写接口


Gin是使用Go编写的一个web框架,具有高性能的特点,也是比较常用的一款web框架,类似的还有echo框架,今天这个就说一下使用gin做一个web接口。

这是我的一个简单的目录,分别对应的是

yourAppName  WEB部署目录(或者子目录)
├─apis          	接口目录
│  ├─user           用户模块
│  │  ├─user.go     用户接口 
│  ├─websocket      websocket模块
│  │  ├─socket.go   socket接口
│  │  ├─struct.go   结构体文件
├─config            配置
│  ├─config.json    配置文件
├─middleware        应用目录
│  ├─DB        		数据库连接
│  ├─tools    		小工具
│  │  ├─config.go   读取配置
│  ├─...      		集成的一些小工具。第三方adk,api等
│  │
├─router          	路由
│  ├─router.go      路由文件
│─go.mod            Golang包管理工具
│  ├─go.sum         Golang包
├─main.go     		入口文件
├─...				更多文件

在这里插入图片描述
比如我们现在要写一个登录的接口,那么我们在apis->user->user.go中创建一个login方法,


package user

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

func Login(c *gin.Context) {
	// 获取get方式参数
	// username := c.Param("username")
	username := c.Query("username")
	// 获取post方式参数
	// username := c.PostForm("username")
	// 获取header参数
	// c.Request.Header.Get("username")

	data := make(map[string]interface{}, 0)

	data["username"] = username

	c.JSON(http.StatusOK, gin.H{
		"message": "success",
		"status":  http.StatusOK,
		"data":    data,
	})
	c.Abort()
	return
}

在这个文件中我们用到了gin的框架包,因为我这里是已经get过所以是显示成,在项目初始化的时候需要执行 go get github.com/gin-gonic/gin来获取这个包,我们才可以使用,不然的话这里就会报错。在方法中Login(c *gin.Context)就可以使用gin框架了,gin框架中自带了几种获取参数的方式,get方式通过url获取参数c.Query("username"),c.Param("username"),post方式通过c.PostForm("username")来获取参数,还有通过c.Request.Header.Get("username")来获取header中的参数,当然获取参数的方式不止这些,这里只列举了几个,可以前往gin官网查看文档,或者通过查看源码来了解更多的获取参数方式。

接口写好了后我们要在访问到接口那么需要配置一下路由,在router目录中创建router.go文件


package router

import (
	"NowIM/apis/user"
	"NowIM/apis/websocket"
	"github.com/gin-gonic/gin"
)

func InitRouter() *gin.Engine {
	router := gin.Default()
	router.GET("/", websocket.WebsocketManager.WsClient)

	router.GET("/user/login", user.Login)

	return router
}

首先定义一个gin的初始化engine,再往engine中加入我们需要访问到对应接口的路由,
比如上面定义了使用get方式请求路由地址为/user/list访问到对应的登录接口,路由这里写好了那么在根目录下的main.go文件中初始化我们的路由。并且设置访问的端口。


package main

import (
	. "NowIM/router"
)

func main() {
	router := InitRouter()

	if err := router.Run(":8081"); err != nil {
		panic(err)
	}
}

另外这里要注意,端口必须前面带上:否则会无法启动。
这些步骤都做好了之后,那么就可以在根目录下运行go run main.go来启动服务
启动服务
上面已经启动完成了,指定的端口8081,因为是本地运行,那么通过链接127.0.0.1:8081/user/login就可以访问到接口了
在这里插入图片描述
这里使用postman进行接口测试,在接口后带上参数username,并且将参数加入到json中返回。

gin是一个很强大的框架,内置了很多方便简单的函数,大大的提高了开发的效率与便捷,很多方法与功能暂时也没有用全,更多的玩法可以进一步学习一下。

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/l19960203/article/details/115829853
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-12-11 17:36:34
  • 阅读 ( 1112 )
  • 分类:Go Web框架

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢