main.go
package main
import (
"log"
"test/router"
)
func main() {
r := router.NewServer("8080")
if err := r.ListenAndServe(); err != nil {
log.Fatal(err)
}
}
router/router.go
package router
import (
"net/http"
"test/controller"
"time"
)
func NewServer(port string) *http.Server {
mux := http.NewServeMux()
SetupRouters(mux)
server := &http.Server{
Addr: ":"+port,
Handler: mux,
ReadTimeout: 10 * time.Second,
}
return server
}
func SetupRouters(mux *http.ServeMux) {
mux.HandleFunc("/hello", controller.Hello)
}
controller/hello.go
package controller
import (
"fmt"
"io/ioutil"
"net/http"
)
func Hello(w http.ResponseWriter, r *http.Request) {
body, _ := ioutil.ReadAll(r.Body)
fmt.Println(string(body))
w.Write(body)
}