Files
quyun-v2/backend/providers/http/config.go

62 lines
922 B
Go

package http
import (
"fmt"
)
const DefaultPrefix = "Http"
type Config struct {
Host string
Port uint
StaticPath *string
StaticRoute *string
BaseURI *string
Tls *Tls
Cors *Cors
RateLimit *RateLimit
}
type Tls struct {
Cert string
Key string
}
type Cors struct {
Mode string
Whitelist []Whitelist
}
type RateLimit struct {
Enabled bool
Max int
WindowSeconds int
Message string
SkipPaths []string
Redis *RateLimitRedis
}
type RateLimitRedis struct {
Addrs []string
Username string
Password string
DB int
Prefix string
}
type Whitelist struct {
AllowOrigin string
AllowHeaders string
AllowMethods string
ExposeHeaders string
AllowCredentials bool
}
func (h *Config) Address() string {
if h.Host == "" {
return fmt.Sprintf("0.0.0.0:%d", h.Port)
}
return fmt.Sprintf("%s:%d", h.Host, h.Port)
}