【问题标题】:Read YAML config through Rest API通过 Rest API 读取 YAML 配置
【发布时间】:2018-07-23 08:32:42
【问题描述】:

我有一个非常复杂的系统,它使用多种语言和框架(Java Python Scala Bash)。在每个模块中,我需要检索相似且经常更改的配置值。目前我正在维护多个包含大量重复项的 conf 文件。 我想知道是否有现成的 RestAPI 可以根据需要从远程位置检索变量。

我现在设法找到的只是从远程源加载整个文件的方法,这是我的一半解决方案:

YAML.parse(open('https://link_to_file/file.yaml'))

我的目标是直接打电话。

MyRemoteAPI.get("level1.level2.x")

附言 YAML 对我来说不是强制性的解决方案,我愿意接受建议。

【问题讨论】:

    标签: rest yaml remote-access


    【解决方案1】:

    我不知道开箱即用的 API,但构建起来相当简单。创建一个将读取 YAML 文件并遍历到相应密钥的服务。例如使用像 Ruby (+Rails) 这样的动态语言,你可以做类似的事情

    def value
      config = YAML.load_file '/local/path/to/config.yaml'
      render plain: config.dig(params[:key].split('.'))
    end
    

    dig 本质上是遍历一个结构并在没有找到键的情况下安全地返回 nil,因此这会返回所请求路径的“叶”处的值。

    您可能还希望将结构缓存在内存中以防止不断地从文件中读取,例如可以做类似@@config ||= YAML.parse(open('https://link_to_file/file.yaml'))config = Rails.cache.fetch('config', expire_in: 1.hour) { ... } 的事情。和/或缓存 API 的 HTTP 响应。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-15
      • 2020-04-30
      • 2021-10-23
      • 1970-01-01
      • 2021-03-30
      • 1970-01-01
      相关资源
      最近更新 更多