From c87acad59c4436554e60ab14870b77e49046c84a Mon Sep 17 00:00:00 2001 From: Ben Morrison Date: Sat, 11 May 2019 04:08:05 -0400 Subject: more graceful routing of http requests --- main.go | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) (limited to 'main.go') diff --git a/main.go b/main.go index d8a0614..9cc1337 100644 --- a/main.go +++ b/main.go @@ -3,6 +3,7 @@ package main import ( "log" "net/http" + "time" "github.com/gorilla/handlers" "github.com/gorilla/mux" @@ -10,17 +11,31 @@ import ( const getwtxt = "0.1" +var closelog = make(chan bool) + func main() { log.Printf("getwtxt " + getwtxt + "\n") - serv := mux.NewRouter() + index := mux.NewRouter() + api := index.PathPrefix("/api").Subrouter() + + index.HandleFunc("/", indexHandler) + api.HandleFunc("/", apiBaseHandler) + api.HandleFunc("/{format:(?:plain)}", apiFormatHandler) + api.HandleFunc("/{format:(?:plain)}/{endpoint:(?:mentions|users|tweets)}", apiEndpointHandler) + api.HandleFunc("/{format:(?:plain)}/tags", apiTagsBaseHandler) + api.HandleFunc("/{format:(?:plain)}/tags/{tags:[a-zA-Z0-9]+}", apiTagsHandler) - serv.HandleFunc("/", indexHandler) - serv.HandleFunc("/{api:(?:api|api/)}", apiBaseHandler) - serv.HandleFunc("/api/{format:(?:plain|plain/)}", apiFormatHandler) - serv.HandleFunc("/api/{format:(?:plain)}/{endpoint:(?:mentions|mentions/|users|users/|tweets|tweets/)}", apiEndpointHandler) - serv.HandleFunc("/api/{format:(?:plain)}/tags/{tags:[a-zA-Z0-9]+}", apiTagsHandler) - serv.HandleFunc("/api/{format:(?:plain)}/{tagpathfixer:(?:tags|tags/)}", apiTagsBaseHandler) + server := &http.Server{ + Handler: handlers.CompressHandler(index), + Addr: ":9001", + WriteTimeout: 15 * time.Second, + ReadTimeout: 15 * time.Second, + } - log.Fatalln(http.ListenAndServe(":8080", handlers.CompressHandler(serv))) + err := server.ListenAndServe() + if err != nil { + log.Printf("%v\n", err) + } + closelog <- true } -- cgit 1.4.1-2-gfad0