Я пытаюсь понять, как правильно реализовать http.Handler. Я написал код пакета barebone. Вот мой код пакета
package app
import (
"fmt"
"net/http"
)
//Handler is the handler function
type Handler struct {
}
func (h *Handler) ServeHTTP(rw http.ResponseWriter, req *http.Request) {
fmt.Println("Running ServeHTTP")
rw.Write(([]byte)("Hello"))
return
}
//NewHandler is
func NewHandler() *Handler {
return &Handler{}
}
//Start will start the server
func (h *Handler) Start() {
fmt.Println("Running Start")
http.ListenAndServe("8080", h)
}
Я создал каталог в вышеупомянутом пакете, назвав его «examples». Я сделал файл main.go
и записал его в основную функцию (после импорта пакета).
func main() {
handler := app.NewHandler()
handler.Start()
}
Но, когда я запускаю его с go run *.go
, Программа прерывается практически сразу после записи Running Start
на консоли. Разве это не должно слушать непрерывно. Что я делаю не так?