結合 gin+gorm+go-Redis 寫一個基礎 API(中篇)

sai0556發表於2020-06-11

在上篇裡,我介紹了讀取配置,並嘗試連線了資料庫,那麼這一篇呢,我們主要利用gin框架來寫寫簡單的介面。


路由

為了便於管理,還是將路由檔案單獨出來,新建routes:

package router

import (
    "net/http"

    "github.com/gin-gonic/gin"

    "local.com/sai0556/gin-frame/controller"
)

func Load(g *gin.Engine) *gin.Engine {
    g.Use(gin.Recovery())
    // 404
    g.NoRoute(func (c *gin.Context)  {
        c.String(http.StatusNotFound, "404 not found");
    })

    g.GET("/", controller.Index)

    return g
}

控制器

上面的程式碼中我們看到了controller,我們建一個目錄controller:

先建base.go檔案,用於寫一些基礎的方法,如SendResponse返回json。

package controller

import (
    "net/http"

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

type Response struct {
    Code int `json:"code"`
    Message string `json:"message"`
    Data interface{} `json:"data"`
}

func SendResponse(c *gin.Context, code int, message string, data interface{}) {
    c.JSON(http.StatusOK, Response{
        Code: code,
        Message: message,
        Data: data,
    })
}

再來寫個index.go,處理邏輯。

package controller

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


func Index(c *gin.Context) {
    SendResponse(c, 0, "success", nil)
}

啟動gin

// main.go
// 在連線資料可後加入以下程式碼

gin.SetMode("debug")
g := gin.New()
g = router.Load(g)

g.Run(":8080")

不妨啟動看看效果。

go run main.go -c=./conf/config.yaml

結合 gin+gorm+go-Redis 寫一個基礎 API(中篇)

結合 gin+gorm+go-Redis 寫一個基礎 API(中篇)

當然,這裡的服務啟動和停止可以寫得再優雅一些。

推薦文章:

本作品採用《CC 協議》,轉載必須註明作者和本文連結

收藏前不妨點個贊試試!!!
分享開發知識,歡迎交流。qq957042781,公眾號:愛好歷史的程式設計師。
點選直達個人部落格

相關文章