请教老师一个gin的问题?
来源:13-6 为gin增加middleware

wlxz
2020-01-02
请问,gin可以象iris一样注册service吗?
比如iris的例子:
router.go
userService:= services.NewUserService()
admin := mvc.New(b.Party("/admin"))
admin.Register(userService)
user_controller.go
type UserController struct {
Ctx iris.Context
Service services.userService
}
func (c *UserController) Get() mvc.Result {
datalist := c.Service.GetAll()
}
在gin里没有找到这种方式,目前只能在每个handlers里实例化服务
写回答
2回答
-
可以用函数式编程来打包我们的实例,请参考下面的代码:
package main
import (
"net/http"
"github.com/gin-gonic/gin"
"go.uber.org/atomic"
)
type Counter struct {
count atomic.Int32
}
func (c *Counter) Counter(ctx *gin.Context) {
ctx.String(http.StatusOK, "%d", c.count.Inc())
}
func main() {
r := gin.Default()
c := Counter{}
r.GET("/counter", c.Counter)
r.Run()
}042020-01-31 -
乐只君子
2020-01-02
gin 没有提供 MVC,但可以自己实现。比如可以参考:
https://github.com/mydevc/go-gin-mvc
012020-01-03
相似问题