Go 好用的web框架

使用 Gin-Plus 框架快速進行 web 開發

一、前言

安裝

  • Get
go get github.com/archine/gin-plus/[email protected]
  • Mod
# go.mod文件加入下面的一條
github.com/archine/gin-plus/v2 v2.0.0

# 命令行在該項目目錄下執行
go mod tidy

二、項目使用

1、啓動入口

定義 main 文件,作爲項目啓動入口

package main

import (
    "gin-plus-demo/base"
    _ "gin-plus-demo/controller"
    "github.com/archine/gin-plus/v2/ast"
    "github.com/archine/gin-plus/v2/mvc"
    log "github.com/sirupsen/logrus"
    "os"
)

//go:generate go run main.go ast
func main() {
    if len(os.Args) > 1 && os.Args[1] == "ast" {
        ast.Parse("controller") // controller目錄
        return
    }
    app, err := base.NewApp("app.yml")
    if err != nil {
        log.Fatalf("initializer application failed,%s", err.Error())
    }
    mvc.Apply(app.Engine, true, base.Ast)
    app.Run()
}

2、定義數據庫模型層

package model

import (
    "github.com/archine/ioc"
    log "github.com/sirupsen/logrus"
)

// User 和數據庫對應得結構體
type User struct {
    Age  int
    Name string
}

// UserMapper 操作數據庫層
type UserMapper struct{}

func (u *UserMapper) CreateBean() ioc.Bean {
    return &UserMapper{}
}

// AddUser 添加用戶
func (u *UserMapper) AddUser(arg *User) {
    log.Printf("%v\n", arg)
}

// GetUser 獲取用戶
func (u *UserMapper) GetUser() *User {
    return &User{10, "張三"}
}

3、定義controller

package controller

import (
    "gin-plus-demo/model"
    "github.com/archine/gin-plus/v2/mvc"
    "github.com/archine/gin-plus/v2/resp"
    "github.com/gin-gonic/gin"
)

type TestController struct {
    mvc.Controller
    UserMapper *model.UserMapper `@autowired:""`
}

func init() {
    mvc.Register(&TestController{})
}

// User
// @GET(path="/user", globalFunc=false) 獲取用戶
func (t *TestController) User(ctx *gin.Context) {
    resp.Json(ctx, t.UserMapper.GetUser())
}

// AddUser
// @POST(path="/add_user", globalFunc=true) 添加用戶
func (t *TestController) AddUser(ctx *gin.Context) {
    var arg model.User
    if resp.ParamValid(ctx, ctx.ShouldBindJSON(&arg), &arg) {
        return
    }
    t.UserMapper.AddUser(&arg)
    resp.Ok(ctx)
}

4、啓動

訪問其中一個接口測試:http://localhost:4006/user


詳細文檔地址:點擊前往

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章