【问题标题】:Multiple baseUri in RAML?RAML中的多个baseUri?
【发布时间】:2015-06-05 19:56:26
【问题描述】:

我是 RAML 的新手,我有一个基本问题:

不能指定一组替代 baseUri(只允许一个)。是否有任何替代方法来模拟 API 的多个替代安装(例如,用于单独的发布周期环境)?

【问题讨论】:

    标签: raml


    【解决方案1】:

    一种方法是使用 baseUriParameters 并为不同的部署使用枚举值。

    #%RAML 0.8
    title: Some Service
    version: 1
    baseUri: https://{environment}/rest/v{version}/services/someservice
    baseUriParameters:
      environment:
        description: Integration test, Acceptance Integration Test, Production
        enum: ["test-api.company.com","acc-api.company.com","api.company.com"]
    

    【讨论】:

      【解决方案2】:

      我处理这个问题的方法是模板化baseUri

      对于我使用的 JVM 应用程序:

      baseUri: ${baseUri}
      

      并将 RAML 文件呈现为 JSP。

      对于我使用的 Ruby 应用程序:

      baseUri: <%= base_uri >
      

      并呈现为 ERB。

      baseUri 的值是根据入站请求动态计算的,因此它始终与部署它的主机/域匹配。

      【讨论】:

      • 不错!我想我提供的解决方案对于手动组合此属性(即合同优先样式)是有效的,而您指定的方法是根据实际实现(即部署优先样式)组合此属性。
      • 嗯,我是契约优先的支持者,我认为 RAML 实际上非常支持和鼓励契约优先的方法。但是将baseUri 的值固定为预定义的集合太不切实际了,尤其是当您对最终URI 是随机的(由云提供商生成)的集成构建进行临时云部署时。
      猜你喜欢
      • 2016-02-18
      • 2016-12-22
      • 1970-01-01
      • 2015-08-23
      • 2019-08-09
      • 2018-03-27
      • 2010-11-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多