[英]How to get at openapi server values
我的服务器有以下yaml
openapi 3
config':
servers:
- url: "localhost"
description: "localhost development server"
variables:
port:
default: ":10000"
没有那个讨厌的破折号,通过viper
获得这些值是微不足道的,但我正在努力解决它(这是使yaml
openapi 3
兼容所必需的。
这样做:
servers := viper.Get("servers")
fmt.Println(reflect.TypeOf(servers))
fmt.Println(servers)
告诉我这个:
[]interface {}
[map[description:localhost development server url:localhost variables:map[port:map[default::10000]]]]
但是我的 n00bie golang
能力缺乏 ninja Skillz 来检索port
的:10000
值。
非常感谢任何帮助!
servers
是一个阵列。 假设 Viper 无法处理 arrays,您首先必须索引servers
以获取其中的 object:
server:=servers[0]
一旦你有了服务器,假设它是一个map[string]interface{}
,你可以下降:
if v, ok:=server["variables"]; ok {
if varMap, ok:=v.(map[string]interface{}); ok {
if p, ok:=varMap["port"]; ok {
if port, ok:=p.(map[string]interface{}); ok {
if d, ok:=port["default"]; ok {
defaultValue=fmt.Sprint(d)
}
}
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.