当前位置: 首页 > 软件库 > Web应用开发 > 网站API >

dgate

基于 Vert.x 的 API gateway
授权协议 Apache
开发语言 Java Groovy
所属分类 Web应用开发、 网站API
软件类型 开源软件
地区 国产
投 递 者 戴嘉珍
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

dgate 是基于 Vertx 的 API Gateway。运行 dgate 的命令如下:

java -jar dgate-version-fat.jar -Dconf=conf

 

其中的 conf 属性用来指定运行所需的配置文件。

conf的文件格式

dgate采用ConfigSlurper解析conf文件,因此其文件的语法实际上是Groovy语法。

conf文件由多个Api Gateway的定义组成,对于每个Gateway定义如下:

apiGatewayName {
    port //端口
    login //后端login服务的url,其值为urls中的一个url
    urls { URL配置(UrlConfig)列表 } //dgate暴露的url列表
}

 

对于每个URL配置,其结构如下:

url {
    required //必需参数列表
    methods  //支持的HTTP Method
    upstreamURLs { 上游URL列表(UpStreamURL) }
    expected //期望返回值
}

 

其中:

  • required支持两种格式:List和Map。前者适用于不区分HttpMethod时的参数验证,后者则可以针对不同的HttpMethod分别进行设置。

    • List,如:required = ["sub", "password"]

    • Map,如:required = [get: ['param1'], post: ['param2'], delete: ['param3']]

  • expected和upStreamURLs两个属性不能并存

  • expected主要用于mock模式,其目的是为了便于依赖dgate的访问层可以自行mock所需的响应,使得它们的开发进度受dgate开发进度的影响最小化。

  • 对于expected的内容:

    • statusCode和payload至少有一个

    • 或针对具体的HTTP METHOD的返回值

  • 对于每个上游URL,有3个属性:host、port和url,其中url必需以"/"开始

  • dgate网关配置数据如下: apiGateway1 { port = 7000 login = "/login" urls { "/login" { required = ["sub", "password"] methods = [HttpMethod.GET, HttpMethod.POST]

  • dgate:an API Gateway based on Vert.x dgate是基于Vertx的API Gateway。运行dgate的命令如下: java -jar dgate-version-fat.jar -Dconf=conf 其中的conf属性用来指定运行所需的配置文件。 conf的文件格式 在说明格式之前,先看一个例子: apiGateway1 { port = 7000

  • 由于简单同时又强大的Mock特性,dgate在我的项目中除了作为简单的API网关,它也承担着面向前端的Mock Server作用,保证前后端开发同步进行。最近,因为项目的需要,顺手给它增加了一个新的Mock特性:EventBusBridge。 使用很简单,DSL的例子如下: apiGateway { port = 7001 host = 'localhost' urls

 相关资料
  • Vert.x 是一个微服务开发框架,基于事件和异步,依托于全异步Java服务器Netty,并扩展了很多其他特性,以其轻量、高性能、支持多语言开发而备受开发者青睐,开发者可以通过它使用 JavaScript、Ruby、Groovy、Java、甚至是混合语言来编写应用。 概念 Vert.x是事件驱动的,其处理请求的高性能也是基于其事件机制。Vert.x的事件机制中有几个非常重要的概念:Event Lo

  • 原文档 组件源码 中英文对照表 Overloading:重载 Configuration Store:配置仓库 组件介绍 Vert.x Config 提供了一种配置 Vert.x 应用的方式。 它包含: 支持多种配置语法(JSON、properties、YAML(扩展)、HOCON(扩展)等) 支持多种存储方式(文件、目录、HTTP、Git(扩展)、Redis(扩展)、系统属性、环境变量等) 支持

  • 原文档 组件源码 组件示例 中英文对照表 bytecode instrumentation:字节码修改/增强 kernel thread:内核线程 简介 Vert.x Sync 是一组工具集,其特点是在不阻塞内核线程的同时,允许用户以同步的方式接收事件、执行异步操作。 比起很多历史遗留的应用系统,Vert.x 的一个关键优点是完全非阻塞(于内核线程而言) —— 这使它用少量的内核线程就可以处理大量

  • 原文档 组件源码 组件示例 中英文对照表 observable sequences:可观察序列 Rxified:Rx化 operator:操作符 lift:变换 flow:流 read stream:可读流 write stream:可写流 observer:观察者 subscriber:订阅者 item:对象 handler:(事件)处理器 timer:定时器 subscription(n.):

  • 由 Vert.x 实例维护的线程不是守护程序线程,从而防止 JVM 退出。 如果你嵌入 Vert.x 和你已完成了,你可以调用close来关闭它。 这将关闭所有的内部线程池和关闭其他的资源,让 JVM 退出。