Как добавить языковой префикс в url в Gin?

Я хочу добавить языковой префикс в URL-адрес, например localhost / en / someurl или localhost / de / someurl. Я нашел такое решение:

en := r.Group("/en")
{
    en.GET("/someurl", ...)
    ...
}
de := r.Group("/de")
{
    de.GET("/someurl", ...)
    ...
}

но для этого требуется повторить все маршрутизаторы, а для добавления нового языка потребуется еще одно дублирование. Могу ли я избежать этого с джином?


person Vladimir Babin    schedule 20.01.2021    source источник


Ответы (1)


Как насчет использования вместо этого параметра пути?

r.Get("/:lang/someurl", ...)

Затем в обработчике вы можете получить доступ к языку:

func(c *gin.Context) {
    lang := c.Param("lang")

    // ...
}
person TehSphinX    schedule 20.01.2021