package main import ( "encoding/json" "database/sql" _ "github.com/go-sql-driver/mysql" "fmt" "io/ioutil" "log" "net/http" //"net/url" "time" ) type SnapshotRecord struct { Id int Timestamp time.Time Temp float32 Humidity float32 Co2 float32 } type SnapshotSubmission struct { Timestamp float32 `json:"time"` Temp float32 `json:"temp"` Humidity float32 `json:"humidity"` Co2 float32 `json:"co2"` } var climateDb *sql.DB func setupDb() *sql.DB { db, err := sql.Open("mysql", "admin:sekna123jk@tcp(127.0.0.1:3306)/climate") if err != nil { panic(err.Error()) } return db } func main() { climateDb = setupDb() defer climateDb.Close() http.HandleFunc("/", viewHandler) fmt.Println("Listening on port 8001...") log.Fatal(http.ListenAndServe(":8001", nil)) } func viewHandler(w http.ResponseWriter, r *http.Request) { fmt.Println("Request received") var snapshotSub SnapshotSubmission body, err := ioutil.ReadAll(r.Body) if err != nil { log.Fatal(err) } err = json.Unmarshal(body, &snapshotSub) if err != nil { log.Fatal(err) } fmt.Printf("%v\n", snapshotSub) _, _ = fmt.Fprint(w, "