I have created a small test app in golang and am trying to deploy it to Google AppEngine and although the "gcloud app deploy" command seems to work and reports no errors, when I visit the endpoint -> https://XXX.appspot.com/cards it just sits there and eventually gives me a 500 response, and displays the error (in the browser)
Error: Server Error
The server encountered an error and could not complete your request.
Please try again in 30 seconds.
I am fairly new go golang and AppEngine but I have made several working apps recently and I am completely stumped as to why it's not working.
When I type "gcloud app logs tail -s default" I see some log entries like:
2019-09-06 02:17:31 default[20190905t204717] "GET / HTTP/1.1" 500
2019-09-06 02:17:32 default[20190905t204717] Starting the application...
2019-09-06 02:22:08 default[20190905t212008] "GET / HTTP/1.1" 500
2019-09-06 02:22:08 default[20190905t212008] Starting the application...
2019-09-06 02:22:14 default[20190905t212008] "GET /cards HTTP/1.1" 500
2019-09-06 02:22:17 default[20190905t212008] "GET /cards HTTP/1.1" 500
2019-09-06 02:22:17 default[20190905t212008] Starting the application...
Here is the simple single file go app "main.go "
package main
import (
"encoding/json"
"fmt"
"github.com/gorilla/mux"
"net/http"
)
func main() {
fmt.Println("Starting the application...")
router := mux.NewRouter()
router.HandleFunc("/cards", GetCardsEndpoint).Methods("GET")
err := http.ListenAndServe(":80", router)
fmt.Println("ERR:", err)
}
func GetCardsEndpoint(response http.ResponseWriter, request *http.Request) {
fmt.Println("API: GetCardsEndpoint() ")
err := json.NewEncoder(response).Encode("cards api here")
fmt.Println("API: GetCardsEndpoint() err:", err )
}
The app.yaml
runtime: go111
It should return text: "cards api here"