go fiber:使用獨立的routes檔案組織controller

刘宏缔的架构森林發表於2024-11-16

一,go程式碼:

go fiber:使用獨立的routes檔案組織controller

controller/articleController.go

package controller

import "github.com/gofiber/fiber/v2"

type ArticleController struct{}

func NewArticleController() *ArticleController {
	return &ArticleController{}
}

func (dc *ArticleController) GetArticle(c *fiber.Ctx) error {
	// 處理獲取文章的邏輯
	return c.SendString("獲取文章資訊")
}

func (dc *ArticleController) CreateArticle(c *fiber.Ctx) error {
	// 處理建立文章的邏輯
	return c.SendString("建立文章")
}

controller/userController.go

package controller

import "github.com/gofiber/fiber/v2"

type UserController struct{}

func NewUserController() *UserController {
	return &UserController{}
}

func (dc *UserController) GetUser(c *fiber.Ctx) error {
	// 處理獲取使用者的邏輯
	return c.SendString("獲取使用者資訊")
}

func (dc *UserController) CreateUser(c *fiber.Ctx) error {
	// 處理建立使用者的邏輯
	return c.SendString("建立使用者")
}

routes/routes.go

package routes

import (
	"github.com/gofiber/fiber/v2"
	"industry/controller"
)

func SetupRoutes(app *fiber.App) {
	//文章模組
	articleController := controller.NewArticleController()
	article := app.Group("/article")
	article.Get("/info", articleController.GetArticle)
	article.Post("/", articleController.CreateArticle)

	//使用者模組
	userController := controller.NewUserController()
	user := app.Group("/user")
	user.Get("/info", userController.GetUser)
	user.Post("/", userController.CreateUser)
}

main.go

package main

import (
	"github.com/gofiber/fiber/v2"
	"industry/routes"
)

func main() {

	app := fiber.New()

	// 設定路由
	routes.SetupRoutes(app)

	// 啟動伺服器
	err := app.Listen(":3000")
	if err != nil {
		return
	}

}

二,測試效果:

$ ./industry 

 ┌───────────────────────────────────────────────────┐ 
 │                   Fiber v2.52.5                   │ 
 │               http://127.0.0.1:3000               │ 
 │       (bound on host 0.0.0.0 and port 3000)       │ 
 │                                                   │ 
 │ Handlers ............. 6  Processes ........... 1 │ 
 │ Prefork ....... Disabled  PID .............. 2558 │ 
 └───────────────────────────────────────────────────┘ 

相關文章