package main import ( "context" "database/sql" "log" "net/http" "time" _ "github.com/go-sql-driver/mysql" ) var db *sql.DB type Student struct { ID int64 `json:"id"` Name string `json:"name"` Age int `json:"age"` Email string `json:"email"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` } func main() { mux := http.NewServeMux() mux.HandleFunc("/health", healthHandler) mux.HandleFunc("/students", studentsHandler) mux.HandleFunc("/students/", studentByIDHandler) var err error db, err = openDB() if err != nil { log.Fatal(err) } if err = migrate(context.Background(), db); err != nil { log.Fatal("migrate error: "+err.Error()) } addr := ":8080" log.Printf("Start server at %s\n", addr) if err := http.ListenAndServe(addr, mux); err != nil { log.Fatal(err) } }