3
A
回答
3
我處理這個問題的方式是通過模板baseUri
。
對於JVM的應用程序使用:
baseUri: ${baseUri}
並呈現RAML文件作爲JSP。
的Ruby應用程序使用:
baseUri: <%= base_uri >
,並呈現爲ERB。
baseUri
的值基於入站請求即時計算,因此它始終與其部署的主機/域匹配。
7
一種方法是使用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"]
不錯!我想我提供的解決方案對於手動組合這個屬性是合法的(即契約優先風格),而你指定的方法是基於實際實現(即部署優先風格)組成這個屬性。 – nize 2015-04-02 07:42:26
那麼我是合同優先的支持者,我認爲RAML實際上支持並鼓勵合同優先的方法。但是將'baseUri'的值修改爲預定義的集合將會太不切實際,尤其是當您對最終URI是隨機的(由雲提供者生成)的集成構建進行臨時雲部署時。 – 2015-04-02 14:49:56