moonstream/moonstreamdb/server/cmd/server.go

46 wiersze
1022 B
Go
Czysty Zwykły widok Historia

2021-11-02 15:22:59 +00:00
package cmd
import (
"database/sql"
"flag"
"log"
"net/http"
"time"
2021-11-02 15:22:59 +00:00
)
type extendedServer struct {
db *sql.DB
}
func InitServer() {
var listeningAddr string
var listeningPort string
flag.StringVar(&listeningAddr, "host", "127.0.0.1", "Server listening address")
flag.StringVar(&listeningPort, "port", "8080", "Server listening port")
flag.Parse()
db := InitDB()
defer db.Close()
es := extendedServer{db: db}
2021-11-02 19:28:56 +00:00
serverMux := http.NewServeMux()
2021-11-02 15:22:59 +00:00
serverMux.HandleFunc("/ping", pingRoute)
serverMux.HandleFunc("/block/latest", es.blocksLatestRoute)
// Set middlewares from bottom to top
serverHandler := corsMiddleware(serverMux)
serverHandler = logsMiddleware(serverHandler)
serverHandler = panicMiddleware(serverHandler)
server := http.Server{
Addr: listeningAddr + ":" + listeningPort,
Handler: serverHandler,
2021-11-02 19:28:56 +00:00
ReadTimeout: 10 * time.Second,
WriteTimeout: 10 * time.Second,
2021-11-02 15:22:59 +00:00
}
log.Printf("Starting server at %s:%s\n", listeningAddr, listeningPort)
server.ListenAndServe()
}