url-shortener/main.go

46 lines
820 B
Go

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
}
}