package main import ( "encoding/json" "fmt" "github.com/joho/godotenv" "net/http" ) type ShorterRequest struct { Url string } func main() { envError := godotenv.Load() if envError != nil { panic("Error loading .env file") } router := http.NewServeMux() router.HandleFunc("GET /", func(w http.ResponseWriter, r *http.Request) { w.Write([]byte("Hello World")) }) router.HandleFunc("POST /shorten", func(w http.ResponseWriter, r *http.Request) { requestData := ShorterRequest{} err := json.NewDecoder(r.Body).Decode(&requestData) if err != nil { fmt.Println(err) panic(err) } w.Write([]byte(requestData.Url)) }) server := http.Server{Addr: ":3000", Handler: router} fmt.Println("URL Shortener is running on :3000") err := server.ListenAndServe() if err != nil { return } }