Node.JS開源:蚊香狗 - 一個基于 nodejs 的 api 網關

rwdc1186 7年前發布 | 24K 次閱讀 Node.js 網關 API Node.js 開發

安裝

第一步,在機器上安裝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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!