keel/service/http_test.go
2024-04-15 09:09:12 +02:00

48 lines
1.5 KiB
Go

package service_test
import (
"net/http"
"time"
"github.com/foomo/keel"
"github.com/foomo/keel/service"
"go.uber.org/zap"
)
func ExampleNewHTTP() {
svr := keel.NewServer(
keel.WithLogger(zap.NewExample()),
keel.WithGracefulPeriod(10*time.Second),
)
l := svr.Logger()
svr.AddService(
service.NewHTTP(l, "demo", "localhost:8080", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusOK)
_, _ = w.Write([]byte("OK"))
})),
)
go func() {
waitFor("localhost:8080")
l.Info(httpGet("http://localhost:8080"))
shutdown()
}()
svr.Run()
// Output:
// {"level":"info","msg":"starting keel server"}
// {"level":"info","msg":"starting keel service","keel_service_type":"http","keel_service_name":"demo","net_host_ip":"localhost","net_host_port":"8080"}
// {"level":"info","msg":"OK"}
// {"level":"info","msg":"keel graceful shutdown","graceful_period":"10s"}
// {"level":"info","msg":"keel graceful shutdown: closers"}
// {"level":"info","msg":"stopping keel service","keel_service_type":"http","keel_service_name":"demo"}
// {"level":"debug","msg":"keel graceful shutdown: closer closed","name":"*service.HTTP"}
// {"level":"debug","msg":"keel graceful shutdown: closer closed","name":"noop.TracerProvider"}
// {"level":"debug","msg":"keel graceful shutdown: closer closed","name":"noop.MeterProvider"}
// {"level":"info","msg":"keel graceful shutdown: complete"}
// {"level":"info","msg":"keel server stopped"}
}