У меня есть файл main.go
, который выглядит примерно так:
func main() {
connection := db.Connect()
defer connection.Close()
// db.ResetDb() // uncomment if you want to drop the db on go run main.go
http.HandleFunc("/do-a", endpoints.DoA)
http.HandleFunc("/do-b", endpoints.DoB)
// ...
http.HandleFunc("/do-z", endpoints.DoZ)
http.ListenAndServe(":8081", nil)
}
. Вначале устанавливается соединение с базой данных, используя db.Connect
. Любая функция в моей кодовой базе может обращаться к базе данных, если это необходимо. Затем создаются несколько конечных точек с http.HandleFunc
. Наконец, сервер прослушивает порт 8081
моего локального компьютера.
Все функции обработчика конечных точек являются чистыми функциями. Нет внутреннего состояния, которое требовало бы постоянной работы сервера, поэтому я подумал, что, возможно, облачные функции могут работать. Единственный сбой, который я вижу для облачных функций, - это соединение с базой данных, которое необходимо устанавливать перед каждым вызовом конечной точки. Я думаю, что эта проблема может быть исправлена с помощью GCF, поскольку она может кешировать объекты .
Что касается примечания, должно развертывать свой бэкэнд, как это? Было бы лучше просто запустить его на типичном сервере, который работает 24/7?