🏁Александр
эм?
Anatoliy
?
🏁Александр
ты показал NotImplemented, а сам передаешь StatusHandler
🏁Александр
может логично надо показать StatusHandler? 🙂
Anatoliy
ошибся, сори, там имена совпадают
Anatoliy
поправил
🏁Александр
type StatusHandler struct { paramString string } func (h *StatusHandler) Handler(c *gin.Context)) { c.JSON(200, gin.H{ "status": "OK", }) }
Anatoliy
Спасибо, пошел пробовать)
🏁Александр
раньше отправил 🙂
🏁Александр
handlerStruct := &controller.StatusHandler{ paramString: "value" } r.GET("/status", handlerStruct.Handler)
🏁Александр
это в main
🏁Александр
p.s. Названия кривые, пруфф оф концепт 🙂
Anatoliy
Хм.. странно как-то выглядит, непривычно я бы сказал, но спасибо, будем пробовать
🏁Александр
ну обычное дело, кормим через структуру
🏁Александр
метод привязываем к структуре
🏁Александр
что за роутинг?
Anatoliy
метод привязываем к структуре
handlerStruct := &controller.TokenHandler{ secretKey: "secret", }
Anatoliy
вот на это ругается
Anatoliy
на secretKey точнее
🏁Александр
вы знаете что в гоу публичные методы и свойства должны с Большой буквы начинатся?
🏁Александр
это вместо private/protected/public в нормальном ООП 🙂
🏁Александр
все что юзается за пределами пакета с Большой буквы
🏁Александр
handlerStruct := &controller.TokenHandler{ SecretKey: "secret", }
🏁Александр
и в объявлении исправте
Anatoliy
угу, не знал, спасибо
Anatoliy
и в объявлении исправте
Заработало, спасибо большое
🏁Александр
Заработало, спасибо большое
вы какой роутинг используете?
Anatoliy
вы какой роутинг используете?
всмысле? библиотеку?
🏁Александр
да
Anatoliy
да
"github.com/gin-gonic/gin"
Slayer
Здравствуйте, где можно посмотреть пример реализации rest api на go без применения фреймворков?
🏁Александр
а чем отличается restapi от обычного?
🏁Александр
берете пакет net/http и json
Bogdan
"github.com/gin-gonic/gin"
убегай пока не поздно) /:id и /count будет одним и тем же роутом при разных обработчиках
Bogdan
хм... а на какой убегать?
я на echo свалил но там тоже не хватает мне валидации на уровне роута
Anatoliy
меня интересует скорость работы, под микросервисы
Anatoliy
откуда пришел? с ноды?
пых, потом java/scala) щас вот смотрю go)
Bogdan
пых, потом java/scala) щас вот смотрю go)
моментальная скорость, даже не сомневайся) 1-2 мс запросто с запросом в БД у меня на ноде до 10-20 доходило локально
Anatoliy
впрочем скала останется на фронтенде, для меня удобно, вряд ли буду менять
Bogdan
labstack?
https://github.com/labstack/echo
Anatoliy
угу, оно еще и jwt умеет из коробки?)
🏁Александр
что вам не сидиться то
🏁Александр
на стандартном
🏁Александр
ну если совсем потянуло то вот - https://github.com/julienschmidt/httprouter
Bogdan
угу, оно еще и jwt умеет из коробки?)
да, middleware для этого есть
🏁Александр
поддерживает стандартный интерфейс http.Handle
🏁Александр
что плюс
Oleg
ну стандартный костылить надо. А разве httprouter совместим со стандартным ?
Oleg
ну тогда не вижу причин не использовать, для меня скорость не важна поэтому использую обезьянку которая аналогично совместима со стандартным роутером. Я не люблю несовместимые роутеры ибо тогда просто зарываешься в фреймворк, что отвлекает от задач.
Anatoliy
хм... а echo как я понял со стандартным не совместим?
Dmitrii
на стандартном
а если больше 2 URL?
Oleg
Единственное, помню что в httprouter нужно было передавать метод, что мне несколько не понравилось, в самом хендлере он не используется (насколько помню).
Oleg
а если больше 2 URL?
там через регекспы можно.
Kirill
есть https://github.com/go-chi/chi использует стандартные хендлеры
Anatoliy
убегай пока не поздно) /:id и /count будет одним и тем же роутом при разных обработчиках
эм.. и можно пояснить как они будут одним и тем же роутом?
🏁Александр
а если больше 2 URL?
два хендлера, три хендлера...
🏁Александр
эм.. и можно пояснить как они будут одним и тем же роутом?
регулярка для переменные роута фактически (.*), поэтому она будет кушать все. До /count не дойдет
🏁Александр
они на одном уровне заметьте
Anatoliy
я просто хочу иметь возможность юать jwt и работать с json) т.е. отдават ьи принимать в нем) собственно все что мне хотелось бы там видеть из коробки)
🏁Александр
в крайнем случаи easyjson
🏁Александр
прикольно, а почему нельзя поменять регулярку?...
потому что она переопределена, не надо делать переменную и фикс на одном уровне
Anatoliy
для json есть стандартная либа
она есть, но я сомневаюсь что она позволяет "из коробки" просто взять и принять json как структуру с которой сразу можно работать
🏁Александр
вы не поверите 🙂
🏁Александр
но позволяет
Anatoliy
понятно, видимо стоит прежде чем лезть сразу во всякие фреймворки которые "позволяют", посмотреть на стандартные либы) судя по всему в go c ними хорошо)
Anatoliy
Но тогда не понятно зачем эти фреймворки нужны)
🏁Александр
структуру вы можете даже руками не городить, сделать автогеном например тут - http://json2struct.mervine.net/
Anatoliy
структуру вы можете даже руками не городить, сделать автогеном например тут - http://json2struct.mervine.net/
за это дикое спасибо, в закладки) а писать все равно придется ручками) проект новый) но теперь можно писать в json, что будет для меня быстрее)
🏁Александр
как вариант без структуры можно так - var notStruct map[string]interface{}