Я использую HTTP-сервер Gin в Google Cloud Functions, но не знаю, правильно ли я инициализирую сервер. Я новичок в Go, поэтому не знаю, правильно ли я это понимаю.
Итак, среда выполнения Google Cloud Functions Go (1.13.8 beta) ожидает функцию, реализующую type HandlerFunc
интерфейс из net/http
.
func HelloHTTP(w http.ResponseWriter, r *http.Request)
Итак, моя функция выглядит так:
func Hello(w http.ResponseWriter, r *http.Request) {
router.ServeHTTP(w, r) // ServeHTTP conforms to the http.Handler interface (https://godoc.org/github.com/gin-gonic/gin#Engine.ServeHTTP)
}
И моя функция инициализации:
Используйте fun c init () для инициализации значений при запуске нового экземпляра вашей функции. Обратите внимание, что код в функции fun c init () запускается до того, как ваша функция получит свой первый запрос.
var router *gin.Engine
func init() {
router := gin.Default()
router.POST("/my/route", MyHandler)
router.Run()
}
Все работает должным образом при развертывании, но я хочу знать, Я что-то упустил или могу ли я сделать это более правильно?