Restlet框架由四個主要部分組成。
1的Restlet API
首先,存在是「的Restlet API」,空檔API支持REST的概念和促進兩個客戶端和服務器端應用程序呼叫的處理。此API由Restlet Engine支持,並且兩者現在都以單個JAR發貨(「org.restlet.jar」)。
API和實現之間的這種分離類似於Servlet API和Web容器(如Jetty或Tomcat)之間的分離,或者JDBC API和具體的JDBC驅動程序之間的分離。
2.檢索網頁
的內容正如我們在介紹文件中提及,Restlet框架是在同一時間在客戶端和服務器架構。例如,Restlet可以使用其HTTP客戶端連接器輕鬆處理遠程資源。 REST中的連接器是一種軟件元素,通常通過實現網絡協議的一側來實現組件之間的通信。 Restlet基於現有的開源項目提供了多種客戶端連接器實現。連接器部分列出所有可用的客戶端和服務器連接器,並說明如何使用和配置它們。
在這裏,我們將獲得在JVM中主機的現有資源和輸出它的表示:
// Outputting the content of a Web page
new ClientResource("http://").get().write(System.out);
注意,上面的例子中使用了一種簡化的方式發出通過ClientResource調用類。如果您需要多線程或更多控制,則仍然可以直接操作使用連接器類或請求對象。以下示例說明如何在您的客戶端調用中設置一些首選項,如引用來源URI。它也可能是您希望收到的響應語言和媒體類型:
// Create the client resource
ClientResource resource = new ClientResource("http://www.restlet.org");
// Customize the referrer property
resource.setReferrerRef("http://www.mysite.org");
// Write the response entity on the console
resource.get().write(System.out);
3.聽Web瀏覽器
現在,我們希望看到Restlet框架如何能聽客戶端請求並回復他們。我們將使用內部Restlet HTTP服務器連接器(即使可以切換到其他人(如基於Mortbay的Jetty的連接器))並以純文本形式返回簡單的字符串表示形式「hello,world」。需要注意的是Part03類擴展了的Restlet提供的基本ServerResource類:
public class Part03 extends ServerResource {
public static void main(String[] args) throws Exception {
// Create the HTTP server and listen on port 8182
new Server(Protocol.HTTP, 8182, Part03.class).start();
}
@Get
public String toString() {
return "hello, world";
}
}
如果你運行該代碼,並推出自己的服務器,你可以打開Web瀏覽器並擊中了。實際上,任何URI都可以工作,也可以嘗試。 請注意,如果您從另一臺計算機上測試服務器,則需要使用服務器的IP地址或其域名(如果已定義一個域名)替換「localhost」。
到目前爲止,我們已經通過ClientResource和ServerResource類向您展示了Restlet API中抽象的最高級別。但是隨着我們前進,您會發現這兩個類都由豐富的API支持,可讓您操縱所有REST工件。
4.概述一個REST架構
讓我們回來一點點,並考慮從一個靜止點典型的web架構。在下面的圖表中,端口代表連接器,用於實現由較大的框表示的組件之間的通信。
哦,我怎麼覺得你的痛苦!絕對是一個投票! – BobbyShaftoe 2008-12-02 11:28:28
檢查出http://stackoverflow.com/questions/1710199/which-is-the-best-java-rest-api-restlet-or-jersey,並考慮這是否是一個確切的重複與否。 – ripper234 2010-11-27 18:28:04
我很同意你的意見!人們會認爲像RESTlet這樣的API會「幫助」你。在三分之一的時間內,我可以編寫一個簡單的Web服務框架,以瞭解RESTlet體系結構。 – Spider 2011-12-20 16:56:32