【发布时间】:2015-06-05 19:56:26
【问题描述】:
我是 RAML 的新手,我有一个基本问题:
不能指定一组替代 baseUri(只允许一个)。是否有任何替代方法来模拟 API 的多个替代安装(例如,用于单独的发布周期环境)?
【问题讨论】:
标签: raml
我是 RAML 的新手,我有一个基本问题:
不能指定一组替代 baseUri(只允许一个)。是否有任何替代方法来模拟 API 的多个替代安装(例如,用于单独的发布周期环境)?
【问题讨论】:
标签: raml
一种方法是使用 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"]
【讨论】:
我处理这个问题的方法是模板化baseUri。
对于我使用的 JVM 应用程序:
baseUri: ${baseUri}
并将 RAML 文件呈现为 JSP。
对于我使用的 Ruby 应用程序:
baseUri: <%= base_uri >
并呈现为 ERB。
baseUri 的值是根据入站请求动态计算的,因此它始终与部署它的主机/域匹配。
【讨论】:
baseUri 的值固定为预定义的集合太不切实际了,尤其是当您对最终URI 是随机的(由云提供商生成)的集成构建进行临时云部署时。