gpt4 book ai didi

go - 如何轻松包含 routes.go?

转载 作者:数据小太阳 更新时间:2023-10-29 03:47:02 25 4
gpt4 key购买 nike

我想将我所有的路由放在一个 routes.go 文件中。目前我在这里上课:

cmd-> src -> main.go

我有这行代码的地方:

func startServer(port string, services Services, stop chan os.Signal, psFact *ps.Factory, logger log.Logger) *http.Server {
router := mux.NewRouter()

apiHandler.RegisterRoutes(router)
router.HandleFunc

srv := &http.Server{Addr: fmt.Sprintf(":%v", port), Handler: router}
go func() {
if err := srv.ListenAndServe(); err != nil {
if strings.HasPrefix(err.Error(), "listen tcp :5002: bind") {
stop <- syscall.SIGTERM
}
log.Log.Error("error shutting down server", zap.Error(err))
}
}()
return srv
}

我想将我所有的 router.HandleFuncs 放在一个名为 routes.go 的单独文件中,在 cmd ->src -> routes.go 中,但我无法弄清楚如何做到这一点。目前,我所拥有的是:

package main

import "net/http"

func (services Services) routes() {
}

但是我如何从我的 main.go 中调用这些 routes.go 呢?

最佳答案

我不确定我是否明白...但请尝试以下操作:

$ tree
.
└── cmd
└── src
├── main.go
└── routes.go

2 directories, 2 files
// $ cat cmd/src/main.go
package main

func main() {
println("hello world")

muxRouter := "SuperRouter"

myService := &MyService{}

myService.routes(muxRouter)
}
// $ cat cmd/src/routes.go
package main

import "fmt"

// MyService ...
type MyService struct {
// deps
}

// routes ...
func (ms *MyService) routes(router string) { //
// register here your endpoints & handlers
fmt.Printf("routes - router: %s & GetServices: %s \n", router, ms.GetServices())
}

// GetServices ...
func (ms *MyService) GetServices() string {
return "baz"
}
$ go run cmd/src/*.go
hello world
routes - router: SuperRouter & GetServices: baz

最好的,

关于go - 如何轻松包含 routes.go?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57299253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com