gin: 使用独立的路由文件和controller文件

一,目录结构:

二,代码:

1,controller/ImageController.go

package controller

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

type ImageController struct{}

func NewImageController() ImageController {
	return ImageController{}
}

//得到详情
func (ic *ImageController) Detail(c *gin.Context) {
	c.JSON(http.StatusOK, gin.H{
		"message": "image detail",
	})
}

//得到列表
func (ic *ImageController) List(c *gin.Context) {
	c.JSON(http.StatusOK, gin.H{
		"message": "image list",
	})
}

2,routes/routes.go

package routes

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

func Routes() *gin.Engine {
	router := gin.Default()

	//image
	image := controller.NewImageController()
	imageGroup := router.Group("/image")
	{
		imageGroup.GET("/detail", image.Detail)
		imageGroup.GET("/list", image.List)
	}

	return router
}

3,main.go

package main

import (
    "imagebank/routes"
)

// 入口函数
func main() {
    //引入路由
    r := routes.Routes()
    //run
    r.Run(":8080")
}

 

三,测试效果:

 

posted @   刘宏缔的架构森林  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
历史上的今天:
2023-01-29 Flutter:升级用到的第三方库(Flutter 3.7.0)
2023-01-29 macos安装android studio(Android Studio 2021.1.1)
点击右上角即可分享
微信分享提示