first commit
This commit is contained in:
47
internal/services/api/main.go
Normal file
47
internal/services/api/main.go
Normal file
@@ -0,0 +1,47 @@
|
||||
package api
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/rs/zerolog/log"
|
||||
"net/http"
|
||||
"os"
|
||||
"thuanle.me/ip-info/configs/key"
|
||||
)
|
||||
|
||||
var srv *http.Server
|
||||
|
||||
func StartApiService() {
|
||||
log.Info().Msg("Starting API service")
|
||||
|
||||
engine := gin.Default()
|
||||
|
||||
trustedProxyIP := os.Getenv(key.EnvGinTrustedProxyIp)
|
||||
if trustedProxyIP != "" {
|
||||
_ = engine.SetTrustedProxies([]string{trustedProxyIP})
|
||||
}
|
||||
|
||||
engine.GET("/", HandleIp)
|
||||
engine.GET("/json", HandleJson)
|
||||
|
||||
port := os.Getenv(key.EnvApiPort)
|
||||
srv = &http.Server{
|
||||
Addr: ":" + port,
|
||||
Handler: engine,
|
||||
}
|
||||
|
||||
go func() {
|
||||
// service connections
|
||||
if err := srv.ListenAndServe(); err != nil && !errors.Is(err, http.ErrServerClosed) {
|
||||
log.Fatal().Err(err).Msg("Error running API service")
|
||||
}
|
||||
}()
|
||||
|
||||
log.Info().Str("port", port).Msg("API service started")
|
||||
|
||||
}
|
||||
|
||||
func Shutdown() {
|
||||
_ = srv.Close()
|
||||
log.Info().Msg("API service stopped")
|
||||
}
|
||||
Reference in New Issue
Block a user