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.DB
var MysqlDbErr error

const (
	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 main

import (
	"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")
}

调用一下接口就可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值