Kanary:基於Kotlin的可擴展RESTful API Web框架
作者 | SeunAdelekan
翻譯 | Vincent
【譯者注】本文主要講Kanary的安裝和依賴等內容,旨在利用高效的方法幫助工程師和開發人員創建基於微服務。以下為譯文
License:Apache 2.0 Download:0.9.0
Code Climate:1 issues
Kanary是一個用於構建可擴展和富有表現力的的RESTful API的Kotlin Web框架,基於Apache 2.0,託管在Github上。Kanary是由Iyanu Adelekan創建,他是目前的項目負責人。
安裝
Maven
包含Jcenter作為插件庫
將Kanary添加為項目依賴關係
Gradle
Ivy
其他
對於其他用例,您可以從bintray下載jar
特徵
表現路由
專註於代碼清晰度
支持控制器
包含HTTP助手
完全支持非同步中間件
簡潔的英語,如「一線」
可用的動作生命周期回調方法
快速開始
這是詳細的[項目包](Packages):https://github.com/SeunAdelekan/Kanary#packages
創建一個Kanary應用程序並啟動伺服器
通過初始化KanaryApp,創建一個Server對象,一個AppHandler實例,將該實例設置為伺服器的處理程序並啟動伺服器在指定的埠上偵聽,創建一個簡單的Kanary應用程序。
創建控制器
控制器是擴展KanaryController類的實例。下面的類是一個簡單的控制器類,不執行任何操作。
創建動作控制器
雖然上述控制器類是正確的,但通常您需要指定控制器中的動作來路由請求。
一個動作是一個控制器函數,它將三個參數作為參數:
一個請求的實例(一個可變的請求對象)
一個HttpServletRequest的實例(一個不可變的請求對象)
HttpServletResponse(響應對象)的一個實例
在下面的控制器中顯示一個有效的動作:
動作控制器生命周期的回調
在KanaryController中可以聲明兩個不同的動作生命周期回調。它們分別是:
beforeAction 如果聲明,則在執行動作之前立即執行
afterAction 如果聲明,則在執行動作後立即執行
聲明這兩個回調與在控制器中聲明一個函數一樣簡單:
路由
所有路由由一個或多個指定的路由器完成。路由是KanaryRouter的一個實例:
聲明路由路徑
以上也可以用:
安裝路由器到應用程序
單個路由可以掛載到KanaryApp的一個實例上,如下所示:
可以隨時安裝無數路由:
中間件
所有的中間件都採用lambda的形式。HttpServletRequest的單個可空的實例被傳遞給添加到應用程序的每個中間件。
可以隨時添加多個中間件:
重要的是,要注意所有中間件以與主應用程序線程並行的非阻塞方式執行。
捆綁中間件
與Kanary捆綁在一起的唯一中間件是「simpleConsoleRequestLogger」。它列印出關於向控制台收到的每個請求的簡潔信息。
處理請求和響應
處理請求
在大多數情況下,請求處理通過創建一個HttpServletRequest來完成一個動作響應。這個HttpServletRequest是Java的一個對象,它是Kanary特定的幫助函數。提供的這些附加功能包括:
一個可變請求對象以請求實例的形式顯示。HttpServletRequest請求實現,因此具有類似於傳遞給HttpServletRequest實例擁有的行為和特徵。除了上表所示的功能外,傳遞的請求實例有:
響應請求
使用HttpServletResponse將一個動作響應發送給客戶端。除了此實例暴露的所有特徵和行為之外,還可以使用以下Kanary特定的幫助函數:
除「sendFile」之外的所有功能都可以用中綴符號(在Kanary中編寫代碼的推薦方式)編寫。這樣可以寫出清晰和表現力強的代碼來回應客戶。這樣就可以向客戶端發送純文本消息:
Packages(包)
Dependencies(依賴)
Jetty(作為應用伺服器引擎):http://www.eclipse.org/jetty/
Jackson-databind (對於JSON序列化/反序列化):https://github.com/FasterXML/jackson-databind/blob/master/README.md
Philosophy(原理)
創建Kanary是為了能夠用Kotlin編程語言實現穩定且非冗長的RESTful API。
公約與配置
Kanary旨在利用高效的方法幫助工程師和開發人員創建基於微服務的應用程序。對於這種方法,開發人員不會強制約定。實施應用程序的方法由實施者自行決定。
Road map(路線圖)
增加測試
創建大量示例應用程序,演示使用Kanary
創建cli工具以支持快速創建Kanary應用程序
添加備份載入功能,更改和保存應用程序文件
管理通知郵件
對於那些希望以MVC為導向的方式使用Canary的模板引擎系統的實現
添加對其他流行應用程序伺服器(如Tomcat和Netty)的支持
點擊展開全文
※開發者如何進行快速學習
※專訪Intel程浩:淺談Apache Spark框架性能調優札記
※RESTful API設計技巧經驗總結
※開源盛會LinuxCon即將火熱來襲
TAG:CSDN |