如何使用 consul 通过 HTTP API 递归获取原始值

Viv*_*vek 5 consul

参考以下关于 HTTP API 的 consul 文档

https://www.consul.io/api/kv.html

recurse (bool: false) - 指定是否应该递归查找并将键视为前缀而不是文字匹配。这被指定为 URL 的一部分作为查询参数。

raw (bool: false) - 指定响应只是键的原始值,没有任何编码或元数据。这被指定为 URL 的一部分作为查询参数。

我期待为以下请求返回的响应中的解码值 http://localhost:8500/v1/kv/?recurse=true&raw=true

recurse选项正在工作,因为我可以看到响应 JSON 中存在的所有键/值对,但值仍被编码(base64)。

raw查询参数不起作用还是我做错了什么?

小智 5

他们的文件在某种程度上具有误导性。这些参数将单独工作。但是,当您尝试将它们组合起来时,它们并不像您想象的那样工作。

一些替代方法来解决您的需求。

您可以先通过以下方式获取密钥列表

http://localhost:8500/v1/kv/?keys

然后,遍历键并单独获取值

http://localhost:8500/v1/kv/YourKey?raw

否则,解码代码中的值。