Node.JS開源:蚊香狗 - 一個基于 nodejs 的 api 網關
安裝
第一步,在機器上安裝node環境(v6+),然后將源碼download到本地后,在項目根目錄執行:
npm install
第二步,在機器上安裝redis(3.2.0+),打開項目根目錄中的 config.js 文件,修改其中的相關配置。一切就緒后就可以運行了:
$ node app.js
___ ___ _____ _____ _____ _____
/ |/ | / ___| | _ \ / _ \ / ___|
/ /| /| | | | | | | | | | | | | |
/ / |__/ | | | | | | | | | | | | | | _
/ / | | | |___ | |_| | | |_| | | |_| |
/_/ |_| \_____| |_____/ \_____/ \_____/
服務編排
MCDog基于json語法(并不是嚴格遵守)來實現的DSL語義,允許使用者描述包括:
- 并行流
- 串行流
- REST任務
- 自定義函數任務
- 條件分支
- 輸出過濾
在內的相關語義完成常見的服務編排工作。接下來我們舉一個常見的例子:
第一步,按照安裝流程將MCDog運行起來,確保它的配置( config.js )開啟了管理后臺服務。
第二步,打開任何一個REST調試工具,這里我們使用Postman來演示,如下圖:
第三步,繼續用Postman請求 http://127.0.0.1:2334/service/rest_get_example_0.2_0/1 接口,注意,這個url前半部分是根據配置文件中定義的(例如:管理后臺端地址和端口號), /service/ 部分是rest服務地址,為固定的。 /rest_get_example_0.2_0/ 部分是上一步創建的服務的id。 /1 部分則表示將指定服務上線。
最后,一切就緒后,就可以訪問創建的服務了: http://127.0.0.1:2333/example/?id=1 ,注意,應該在請求的header中添加對應的version參數,只有這樣MCDog才能最終定位一個上線的服務。
不足
MCDog現在還很簡陋,未來會根據其實際使用情況來逐步完善。目前可以預測的不足包括但不限于:
- 服務編排dsl校驗不徹底,這會使得在上手時體驗很差,無法很直觀的定位錯誤
- 由于現有的dsl表達能力有限,個別復雜的場景可能無法適配
- dsl中存在某些違反直覺的小坑,需要使用者適應
- 異常處理比較粗糙,影響最終響應結果的可預測性,錯誤提醒不足夠人性化
LOGO
本文由用戶 rwdc1186 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!