mirror of
https://github.com/hay-kot/homebox.git
synced 2025-07-20 09:30:29 +00:00
refactor: http interfaces (#114)
* implement custom http handler interface * implement trace_id * normalize http method spacing for consistent logs * fix failing test * fix linter errors * cleanup old dead code * more route cleanup * cleanup some inconsistent errors * update and generate code * make taskfile more consistent * update task calls * run tidy * drop `@` tag for version * use relative paths * tidy * fix auto-setting variables * update build paths * add contributing guide * tidy
This commit is contained in:
parent
e2d93f8523
commit
6529549289
40 changed files with 984 additions and 808 deletions
|
@ -10,6 +10,8 @@ import (
|
|||
"sync"
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
"github.com/go-chi/chi/v5"
|
||||
)
|
||||
|
||||
var (
|
||||
|
@ -22,7 +24,11 @@ type Server struct {
|
|||
Port string
|
||||
Worker Worker
|
||||
|
||||
wg sync.WaitGroup
|
||||
wg sync.WaitGroup
|
||||
mux *chi.Mux
|
||||
|
||||
// mw is the global middleware chain for the server.
|
||||
mw []Middleware
|
||||
|
||||
started bool
|
||||
activeServer *http.Server
|
||||
|
@ -36,6 +42,7 @@ func NewServer(opts ...Option) *Server {
|
|||
s := &Server{
|
||||
Host: "localhost",
|
||||
Port: "8080",
|
||||
mux: chi.NewRouter(),
|
||||
Worker: NewSimpleWorker(),
|
||||
idleTimeout: 30 * time.Second,
|
||||
readTimeout: 10 * time.Second,
|
||||
|
@ -75,14 +82,14 @@ func (s *Server) Shutdown(sig string) error {
|
|||
|
||||
}
|
||||
|
||||
func (s *Server) Start(router http.Handler) error {
|
||||
func (s *Server) Start() error {
|
||||
if s.started {
|
||||
return ErrServerAlreadyStarted
|
||||
}
|
||||
|
||||
s.activeServer = &http.Server{
|
||||
Addr: s.Host + ":" + s.Port,
|
||||
Handler: router,
|
||||
Handler: s.mux,
|
||||
IdleTimeout: s.idleTimeout,
|
||||
ReadTimeout: s.readTimeout,
|
||||
WriteTimeout: s.writeTimeout,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue