原文鏈接:http://restlet.com/technical-resources/restlet-framework/guide/2.3
以下翻譯,以直譯方式爲主,內容主要針對目前應用最爲廣泛的基於 Java 的服務器端的開發與應用,並修復原文中涉及到的代碼 bug。
PS:下文中resources、representation、RESTful 等屬於一組相關的領域內專有名詞,不便翻譯。其中 resources 可以理解爲“資源”。representation 可以理解爲“表現層對象”。RESTful 可以理解爲基於 REST 理念或架構的框架和應用。
測試環境:
Mac OS X Yosemite Version 10.10.4
IntelliJ IDEA 14.app jdk1.8.0_51.jdk
maven 3.3.3
1 概要介紹
在 java 開發者中,restlet 框架是使用最廣泛的開源解決方案之一。
基於 REST 架構風格,restlet 框架幫助 java 開發者構建更好的 web API。由於被衆多 java 開發者社區的採納和支持,restlet 框架受惠於互聯網的大量資源。 restlet 是完全開源的,完全可以免費下載,並且可以在 Apache 軟件協議下使用。
1.1 介紹
restlet 框架是成熟的、穩定的,基於小內核和大量豐富的擴展,使得它能夠適應任何的 web API,以及可以跨網站跨應用。
1.2 web API 支持
-
REST 內核與 HTTP 層面的應用均包含了相應的 java 構件(resources、representation,例如連接器和組件類)。
-
restlet 框架同時適用於客戶端和服務端的 web 應用。其創新之處在於使用了相同的 java API,降低了學習曲線和軟件使用門檻。
-
restlet 框架基於 URI 模板標準,支持“URI”和“UI”概念。這個結果說明,使用者可以通過靈活且簡單的路由方式從 request 屬性中自動獲取 URI 變量。
-
restlet 框架通道服務使得瀏覽器可以通過一個簡單的 HTTP POST 機制傳遞發出任何的 HTTP 方法(例如:PUT, DELETE, PATCH)。這個服務對於 restlet 應用來說是透明的。
-
關於這份方便的 API文檔,感謝 WADL 的支持以及 Swagger 的整合。
1.3 特性(此處省略了原文大部分非建設性的內容)
-
REST 的原理使得它的應用範圍是不會受限的,它可以廣泛應用於 web 應用中,甚至在沒有網絡的場景,如果需要對接通訊或者解耦,它依然適用。根據開發場景的不同具有衆多相應的版本,例如:Java SE、Java EE、GAE、GWT、Android、OSGi等
-
基於 REST 架構和 HTTP 及 URI 標準,restlet 是實現更好的 servlet API 的一種嘗試。因此restlet API 並不會依賴servlet API,而僅僅依賴 Java SE。但使用restlet API 對於發佈 restlet 應用到 java EE 應用服務器或者 servlet 容器之中,可行性是非常高的。 它具備了擴展 servlet 適配器的可能性。
-
具有衆多的連接器(在使用到的時候再瞭解,大概需要知道應用的場景和對象有:HTTP server/client、郵件、文件、搜索引擎等)
-
具有衆多展現模式(在使用到的時候再瞭解,大概需要知道應用的場景和對象有:XML、Freermaker、velocity、文件上傳、Json、搜索引擎等)
1.4 restlet 2.3 改變,除加入新功能以及重構代碼外,特別新增的特性和要求:必須基於 JDK7 以上使用,內置 jetty 升級到 9.2 。