dgate新特性:EventBusBridge Mock

因爲簡單同時又強大的Mock特性,dgate在個人項目中除了做爲簡單的API網關,它也承擔着面向前端的Mock Server做用,保證先後端開發同步進行。最近,由於項目的須要,順手給它增長了一個新的Mock特性:EventBusBridge。前端

使用很簡單,DSL的例子以下:git

apiGateway {
    port = 7001
    host = 'localhost'

    urls { ... }

    eventBusBridge {
        urlPattern ='/eventbus/*'
        publishers {
            'target_address' {
                expected = {
                    [timestamp: Instant.now()]
                }
                timer = 1000
            }
        }
        consumers {
            'consumer_address' {
                target = "target_address"
                expected = [test: true] // 或者 {message -> ...}
            }
        }
    }
}

語法很簡單,與Mock HTTP幾乎一致。其中:github

  • publishers,對應後端主動發起的推送,對於每個推送地址,timer必填,單位爲毫秒。
  • consumers,對應後端接收前端消息的消費者。後端

    • 若target不寫,則對應的模式爲:message.reply
    • 若給出target,則對應eventbus.publish

對於expected,它既能夠爲一個固定的值,也能夠爲一個閉包。當爲閉包時,其返回值爲mock結果。同時,對於consumers中的expected,閉包的入參爲event message。api


相關連接:閉包

相關文章
相關標籤/搜索