improved deserialization method

This commit is contained in:
yusing
2024-12-18 07:18:18 +08:00
parent 6aefe4d5d9
commit f2a9ddd1a6
8 changed files with 310 additions and 98 deletions

View File

@@ -1,10 +1,13 @@
package types
import "github.com/yusing/go-proxy/internal/net/http/accesslog"
import (
"github.com/yusing/go-proxy/internal/net/http/accesslog"
"github.com/yusing/go-proxy/internal/utils"
)
type (
Config struct {
AutoCert *AutoCertConfig `json:"autocert"`
AutoCert *AutoCertConfig `json:"autocert" validate:"omitempty"`
Entrypoint Entrypoint `json:"entrypoint"`
Providers Providers `json:"providers"`
MatchDomains []string `json:"match_domains" validate:"dive,fqdn"`
@@ -18,7 +21,7 @@ type (
}
Entrypoint struct {
Middlewares []map[string]any `json:"middlewares"`
AccessLog *accesslog.Config `json:"access_log"`
AccessLog *accesslog.Config `json:"access_log" validate:"omitempty"`
}
NotificationConfig map[string]any
)
@@ -31,3 +34,7 @@ func DefaultConfig() *Config {
},
}
}
func init() {
utils.RegisterDefaultValueFactory(DefaultConfig)
}