1. 程式人生 > 其它 >Gin_01_第一個hello檢視函式

Gin_01_第一個hello檢視函式

package main

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

// ApiResponse 封裝一個響應結構體
type ApiResponse struct {
	Code    uint8  `json:"code"`
	Msg     string `json:"msg"`
	MsgCode uint8  `json:"msg_code"`
	Data    gin.H  `json:"data"`
}

// HelloView 第一個檢視函式
func HelloView(ctx *gin.Context) {
	ctx.JSON(http.StatusOK, ApiResponse{
		Code:    1,
		Msg:     "請求成功",
		MsgCode: 100,
		Data: gin.H{
			"url":      ctx.Request.URL.String(),
			"method":   ctx.Request.Method,
			"datetime": time.Now().Format("2006-01-02 15:04:05"),
			"message":  "Hello, Gin!",
		},
	})
}

// NotFound 404檢視函式
func NotFound(ctx *gin.Context) {
	ctx.JSON(http.StatusNotFound, ApiResponse{
		Code:    0,
		Msg:     "請求失敗",
		MsgCode: 104,
		Data:    nil,
	})
}

func main() {
	engine := gin.Default()
	engine.NoRoute(NotFound)
	engine.POST("/hello", HelloView)
	// 指定埠啟動 Gin Web 服務
	if err := engine.Run(":8081"); err != nil {
		log.Fatalf("Gin Web 啟動失敗: %s\n", err)
	}
}