配置器机制

包路径: github.com/caicloud/nirvana

Nirvana 在启动服务之前需要先创建一个配置,这个配置涵盖了启动服务过程所需要的所有信息。

Nirvana 的 Config 实现了 Configurer 机制,用于单独配置每一项信息:

  1. // Config describes configuration of server.
  2. type Config struct {
  3. ...
  4. }
  5. // Configure configs by configurers. It panics if an error occurs or config is locked.
  6. func (c *Config) Configure(configurers ...Configurer) *Config {
  7. ...
  8. }
  9. // Configurer is used to configure server config.
  10. type Configurer func(c *Config) error

Nirvana 提供的 Configurers

IP(ip string) Configurer

设置监听的 IP 地址。

Port(port uint16) Configurer

设置监听的端口。

TLS(certFile, keyFile string) Configurer

设置 TLS 证书和密钥。

Logger(logger log.Logger) Configurer

设置 Server 在运行过程中使用的 Logger,用于输出错误。

Filter(filters …service.Filter) Configurer

添加 Filter。

Modifier(modifiers …service.DefinitionModifier) Configurer

添加 Modifier。

Descriptor(descriptors …definition.Descriptor) Configurer

添加 API 描述。所有的 API 都通过这个 Configurer 添加到 Nirvana 的 Server 里。