gitee.com/sasukebo/go-micro/v4@v4.7.1/api/server/options.go (about) 1 package server 2 3 import ( 4 "crypto/tls" 5 "gitee.com/sasukebo/go-micro/v4/api/server/cors" 6 "net/http" 7 8 "gitee.com/sasukebo/go-micro/v4/api/resolver" 9 "gitee.com/sasukebo/go-micro/v4/api/server/acme" 10 ) 11 12 type Option func(o *Options) 13 14 type Options struct { 15 EnableACME bool 16 EnableCORS bool 17 CORSConfig *cors.Config 18 ACMEProvider acme.Provider 19 EnableTLS bool 20 ACMEHosts []string 21 TLSConfig *tls.Config 22 Resolver resolver.Resolver 23 Wrappers []Wrapper 24 } 25 26 type Wrapper func(h http.Handler) http.Handler 27 28 func WrapHandler(w Wrapper) Option { 29 return func(o *Options) { 30 o.Wrappers = append(o.Wrappers, w) 31 } 32 } 33 34 func EnableCORS(b bool) Option { 35 return func(o *Options) { 36 o.EnableCORS = b 37 } 38 } 39 40 func CORSConfig(c *cors.Config) Option { 41 return func(o *Options) { 42 o.CORSConfig = c 43 } 44 } 45 46 func EnableACME(b bool) Option { 47 return func(o *Options) { 48 o.EnableACME = b 49 } 50 } 51 52 func ACMEHosts(hosts ...string) Option { 53 return func(o *Options) { 54 o.ACMEHosts = hosts 55 } 56 } 57 58 func ACMEProvider(p acme.Provider) Option { 59 return func(o *Options) { 60 o.ACMEProvider = p 61 } 62 } 63 64 func EnableTLS(b bool) Option { 65 return func(o *Options) { 66 o.EnableTLS = b 67 } 68 } 69 70 func TLSConfig(t *tls.Config) Option { 71 return func(o *Options) { 72 o.TLSConfig = t 73 } 74 } 75 76 func Resolver(r resolver.Resolver) Option { 77 return func(o *Options) { 78 o.Resolver = r 79 } 80 }