dgate基于 Vert.x 的 API gateway
dgate 是基于 Vertx 的 API Gateway。運(yùn)行 dgate 的命令如下:
java -jar dgate-version-fat.jar -Dconf=conf
其中的 conf 屬性用來(lái)指定運(yùn)行所需的配置文件。
conf的文件格式
dgate采用ConfigSlurper解析conf文件,因此其文件的語(yǔ)法實(shí)際上是Groovy語(yǔ)法。
conf文件由多個(gè)Api Gateway的定義組成,對(duì)于每個(gè)Gateway定義如下:
apiGatewayName {
port //端口
login //后端login服務(wù)的url,其值為urls中的一個(gè)url
urls { URL配置(UrlConfig)列表 } //dgate暴露的url列表
}
對(duì)于每個(gè)URL配置,其結(jié)構(gòu)如下:
url {
required //必需參數(shù)列表
methods //支持的HTTP Method
upstreamURLs { 上游URL列表(UpStreamURL) }
expected //期望返回值
}
其中:
-
required支持兩種格式:List和Map。前者適用于不區(qū)分HttpMethod時(shí)的參數(shù)驗(yàn)證,后者則可以針對(duì)不同的HttpMethod分別進(jìn)行設(shè)置。
-
List,如:required = ["sub", "password"]
-
Map,如:required = [get: ['param1'], post: ['param2'], delete: ['param3']]
-
-
expected和upStreamURLs兩個(gè)屬性不能并存
-
expected主要用于mock模式,其目的是為了便于依賴dgate的訪問(wèn)層可以自行mock所需的響應(yīng),使得它們的開(kāi)發(fā)進(jìn)度受dgate開(kāi)發(fā)進(jìn)度的影響最小化。
-
對(duì)于expected的內(nèi)容:
-
statusCode和payload至少有一個(gè)
-
或針對(duì)具體的HTTP METHOD的返回值
-
-
對(duì)于每個(gè)上游URL,有3個(gè)屬性:host、port和url,其中url必需以"/"開(kāi)始
