Files
services/test/conf/main.go

60 lines
1.2 KiB
Go

package main
import (
"fmt"
"time"
"github.com/micro/micro/v3/service"
"github.com/micro/micro/v3/service/config"
)
type keyConfig struct {
Subkey string `json:"subkey"`
Subkey1 int `json:"subkey1"`
Subkey2 string `json:"subkey2"`
}
type conf struct {
Key keyConfig `json:"key"`
}
func main() {
// get a value
go func() {
for {
time.Sleep(time.Second)
// Test merge
err := config.Set("key", map[string]interface{}{
"Subkey3": "Merge",
})
if err != nil {
fmt.Println("ERROR: ", err)
}
val, _ := config.Get("key.subkey3")
if val.String("") != "Merge" {
fmt.Println("ERROR: key.subkey3 should be 'Merge' but it is:", val.String(""))
}
val, err = config.Get("key.subkey")
fmt.Println("Value of key.subkey: ", val.String(""), err)
val, _ = config.Get("key", config.Secret(true))
c := conf{}
err = val.Scan(&c.Key)
fmt.Println("Value of key.subkey1: ", c.Key.Subkey1, err)
fmt.Println("Value of key.subkey2: ", c.Key.Subkey2)
val, _ = config.Get("key.subkey3")
fmt.Println("Value of key.subkey3: ", val.String(""))
// Test defaults
val, _ = config.Get("key.subkey_does_not_exist")
fmt.Println("Default", val.String("Hello"))
}
}()
// run the service
service.Run()
}