GIN: можно ли вложить роутер в роутер?

Во всех примерах, роутеры находятся в одном месте, нигде не нашел про вложения.

r := gin.New()
main := r.Group("/main", midl())
main.Get("/get", mainPkg.get)
another := r.Group("/another", midl())
//и т.д.

Мне хотелось бы в пакете описывать роуты, а в главном файле уже просто вписать что-то вроде
r := gin.New()
main := r.Group("/main", here_imported_route.Route)

#here_imported_route.go
package here_imported_route

Router := gin.New()
Router.Use(midl())
Router.Get("/test", hello)

берём роутер, созданный в другом пакете, с прописанными путями, но к ни идёт приставка /main
Т.е. по открытию /main/test нам отдастся hello
В общем, Django-like роутер.
Как-то путано написал, но, надеюсь, можно понять.
  • Вопрос задан
  • 519 просмотров
Решения вопроса 2
@FireGM Автор вопроса
В главном роутинге что-то вроде
package main

import (
	"path_to_pkg/pkg"

	"github.com/gin-gonic/gin"
)

var r *gin.Engine

func init() {
	r = gin.New()
	pkg.Concon(r.Group("/pkg"))

}

func main() {
	r.Run(":8080")
}

В импортируемом пакете создадим функцию для конкатенации
#pkg.go
package pkg

import "github.com/gin-gonic/gin"

func Concon(g *gin.RouterGroup) {
	g.GET("/ping", func(c *gin.Context) {
		c.String(200, "pong")
	})
}

при открытии 127.0.0.1:8080/pkg/ping получаем в ответ pong.
Ответ написан
bitver
@bitver
Мне хотелось бы в пакете описывать роуты, а в главном файле уже просто вписать что-то вроде
r := gin.New()
main := r.Group("/main", here_imported_route.Route)

r := gin.New()
main := r.Group("/main" + here_imported_route.Route,  here_imported_route.Func)

Или
r := gin.New()
main := Imported_router(&r, "/main") // А внутри делайте что хотите с конкатинацией
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@mantyr
Пишу много Golang кода с удовольствием:)
Просто соблюдайте входные и выходные параметры. Возвращать функции с нужным перечнем входных и выходных параметров тоже можно. Остальное дело техники.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы