1
0
mirror of https://github.com/go-micro/go-micro.git synced 2025-01-29 18:04:17 +02:00
go-micro/api/server/options.go

102 lines
1.6 KiB
Go
Raw Normal View History

2019-06-03 18:44:43 +01:00
package server
import (
"crypto/tls"
2020-04-07 19:29:26 +01:00
"net/http"
2021-10-12 12:55:53 +01:00
"go-micro.dev/v4/api/resolver"
"go-micro.dev/v4/api/server/acme"
2022-09-30 20:32:55 +02:00
"go-micro.dev/v4/api/server/cors"
"go-micro.dev/v4/logger"
2019-06-03 18:44:43 +01:00
)
type Option func(o *Options)
type Options struct {
2020-04-07 19:29:26 +01:00
ACMEProvider acme.Provider
Resolver resolver.Resolver
Logger logger.Logger
2023-04-26 00:16:34 +00:00
CORSConfig *cors.Config
TLSConfig *tls.Config
ACMEHosts []string
Wrappers []Wrapper
EnableACME bool
EnableCORS bool
EnableTLS bool
2020-04-07 19:29:26 +01:00
}
type Wrapper func(h http.Handler) http.Handler
func NewOptions(opts ...Option) Options {
options := Options{
Logger: logger.DefaultLogger,
}
for _, o := range opts {
o(&options)
}
return options
}
2020-04-07 19:29:26 +01:00
func WrapHandler(w Wrapper) Option {
return func(o *Options) {
o.Wrappers = append(o.Wrappers, w)
}
}
2020-03-04 11:40:53 +00:00
func EnableCORS(b bool) Option {
return func(o *Options) {
o.EnableCORS = b
}
}
func CORSConfig(c *cors.Config) Option {
return func(o *Options) {
o.CORSConfig = c
}
}
func EnableACME(b bool) Option {
return func(o *Options) {
o.EnableACME = b
}
2019-06-03 18:44:43 +01:00
}
func ACMEHosts(hosts ...string) Option {
return func(o *Options) {
o.ACMEHosts = hosts
}
}
func ACMEProvider(p acme.Provider) Option {
2019-06-03 18:44:43 +01:00
return func(o *Options) {
o.ACMEProvider = p
2019-06-03 18:44:43 +01:00
}
}
func EnableTLS(b bool) Option {
return func(o *Options) {
o.EnableTLS = b
}
}
func TLSConfig(t *tls.Config) Option {
return func(o *Options) {
o.TLSConfig = t
}
}
2020-04-02 17:44:48 +01:00
2020-04-07 16:24:51 +01:00
func Resolver(r resolver.Resolver) Option {
2020-04-02 17:44:48 +01:00
return func(o *Options) {
2020-04-07 16:24:51 +01:00
o.Resolver = r
2020-04-02 17:44:48 +01:00
}
}
2022-09-30 16:27:07 +02:00
// Logger sets the underline logging framework.
func Logger(l logger.Logger) Option {
return func(o *Options) {
o.Logger = l
}
}