【发布时间】:2020-06-25 12:45:43
【问题描述】:
我的服务器有以下 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 能力缺乏忍者技能来检索 port 的 :10000 值。
非常感谢任何帮助!
【问题讨论】:
-
与问题无关——应该是
url: "localhost{port}",即变量需要实际包含在url中。 -
@Helen - 啊,是的,我想我昨天删除了它,因为在没有增加复杂性的情况下,我在获取值时遇到了很多问题!如果我能让上面的所有东西都正常工作,我会把它加回来,马上:)
-
仅供参考 - 我(目前)已放弃尝试支持
openapi 3并已从yaml中删除破折号。这意味着我不得不介绍关于多个参数的讨厌的 hack,但是,嘿,我有一些东西可以用于我正在研究的概念证明。换句话说,我稍后会重新讨论这个;)