package hello import ( "encoding/json" "fmt" "log" "net/http" "github.com/OpenFunction/functions-framework-go/functions" ) // RequestData represents the JSON structure for incoming requests type RequestData struct { A int `json:"a"` B int `json:"b"` } func init() { functions.HTTP("Main", Main, functions.WithFunctionPath("/")) } // Main handles HTTP requests and processes the data func Main(w http.ResponseWriter, r *http.Request) { log.Println("Function called with request") // Decode the JSON body into the RequestData struct var data RequestData err := json.NewDecoder(r.Body).Decode(&data) if err != nil { http.Error(w, "Invalid JSON payload", http.StatusBadRequest) log.Println("Error decoding JSON:", err) return } log.Printf("Received data: %+v\n", data) // Compute the result result := data.A + data.B // Prepare the response response := map[string]int{"result": result} // Encode the response as JSON w.Header().Set("Content-Type", "application/json") err = json.NewEncoder(w).Encode(response) if err != nil { http.Error(w, "Error encoding response", http.StatusInternalServerError) log.Println("Error encoding JSON:", err) return } log.Println("Response sent successfully") }