AI智能
改变未来

go gin框架写一个简单的接口


使用gin写一个简单get接口

需求:把订单数据返回给前端

1.下载并安装gin

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

2.结构目录如下

​ 对数据库的操作写在model文件夹中

3.mysql.go用来连接数据库,代码如下
import (\"database/sql\"\"fmt\"_ \"github.com/go-sql-driver/mysql\"\"log\"\"time\")var MysqlDb *sql.DBvar MysqlDbErr errorconst (USER_NAME = \"root\"PASS_WORD = \"root\"HOST      = \"127.0.0.1\"PORT      = \"3306\"DATABASE  = \"demo\"CHARSET   = \"utf8\")// 初始化链接func init() {dbDSN := fmt.Sprintf(\"%s:%s@tcp(%s:%s)/%s?charset=%s\", USER_NAME, PASS_WORD, HOST, PORT, DATABASE, CHARSET)// 打开连接失败MysqlDb, MysqlDbErr = sql.Open(\"mysql\", dbDSN)//defer MysqlDb.Close();if MysqlDbErr != nil {log.Println(\"dbDSN: \" + dbDSN)panic(\"数据源配置不正确: \" + MysqlDbErr.Error())}// 最大连接数MysqlDb.SetMaxOpenConns(100)// 闲置连接数MysqlDb.SetMaxIdleConns(20)// 最大连接周期MysqlDb.SetConnMaxLifetime(100 * time.Second)if MysqlDbErr = MysqlDb.Ping(); nil != MysqlDbErr {panic(\"数据库链接失败: \" + MysqlDbErr.Error())}}
4.做好这些准备后 我们开始在model文件下创建get.go
//对应数据库字段type OrderList struct {Id int `json:\"id\"`OddNum string `json:\"odd_num\"`BoxNum string `json:\"box_num\"`ResponsName string `json:\"res_name\"`State string `json:\"state\"`CreateTime string `json:\"create_time\"`}func (o *OrderList) List() (err error,ols []OrderList) {list := []OrderList{}//查询所有订单数据row,err :=MysqlDb.Query(\"select * from t_order_list\")//判错if err != nil {fmt.Println(err)return err,nil}//遍历写入for row.Next(){item := OrderList{}err = row.Scan(&item.Id,&item.OddNum,&item.BoxNum,&item.ResponsName,&item.State,&item.CreateTime)if err != nil {fmt.Println(err)return err,nil}list = append(list,item)}return nil,list}

5.在controller文件夹下创建get.go 代码如下

import (\"demo/model\"\"fmt\"\"github.com/gin-gonic/gin\")func List(c *gin.Context)  {i := model.OrderList{}err,is :=i.List()if err != nil {fmt.Println(err)c.JSON(200,nil)return}c.JSON(200,is)}

​ 到现在为止查询的逻辑就写完了,只需要在main 方法下调用就可以了

6.main.go

package mainimport (\"demo/controller\"\"demo/middle\"\"github.com/gin-gonic/gin\")func main()  {router := gin.Default()//router.Use(middle.Cors()) //cors 跨域router.Use(gin.Recovery())//路由分组v1 :=router.Group(\"/v1\"){//调用方法v1.GET(\"/get\",controller.List)}router.Run(\":8000\")}

调用一下接口就可以了

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » go gin框架写一个简单的接口