2011-06-27 50 views
3

過去幾年中,我已經反彈了Java和C#,但現在想要加快Web服務(RESTful)的速度。我曾經是大約在2003年的J2EE大師,但是從那以後,我一直在追蹤各種各樣的東西。我已經完成了一些NetBeans教程(我選擇的IDE),但他們似乎並沒有暴露出自己的本質。我喜歡看到事情是如何工作的,從字節數組開始構建應用程序。需要資源來從SCRATCH學習Java Web服務

雖然我已經觸及了幾個框架,但我最喜歡使用Java EE正確理解添加Spring/Hibernate糖之前的基本情況。

這有道理嗎?我正在尋找一本真正能夠逐步建立您的知識的書籍或教程,以便您瞭解所有內容,而不是某些類似Rails的快速開發工具包。

感謝,在提前,

圭多

+0

我一直無法找到很多關於J2EE REST的書籍。我開始使用JSR 311和Apache CXF文檔(包括JAX-WS和JAX-RS提供者),然後開始搜索與Spring,Spring Security和JAXB集成(並且最終在JAXB的過程中完成了JSR 222 。) – BobG

回答

1

您檢查了Jersey了嗎?這是JAX-RS的Java參考實現。圍繞這個項目有一個很好的社區,主要作者可以通過郵件列表和論壇獲得,並且親自回答了我遇到的一些粗糙情況的問題。球衣網站有很多很棒的鏈接,讓你從各個角度入手,取決於你對學習的興趣。

2

我首先回顧一下HTTP,因爲在實踐中,這是REST Web服務的一個基本組成部分,它會讓您以正確的心態接受下一步的內容。

接下來,考慮如何構建各種資源的URI。 Martin Fowler在這個話題上寫了a good article。用於創建Web服務的各種Java框架試圖使您更容易將請求映射到特定方法,甚至將請求的各個部分(包括路徑元素,查詢參數和整個請求主體)直接映射到對象模型中。但所有這些都有助於通過URI識別和操作資源。

接下來,如果您的資源是相關的,那麼考慮一下hypermedia controls。您可能已經習慣於在網頁中添加<a href="">鏈接,並且您肯定不希望人們對您網站中的每個URL都進行硬編碼或書籤。這個想法如何擴展到Web服務?

接下來,考慮實際在客戶端和服務器之間移動數據。 JSON或XML? URI元素或查詢參數?同樣,爲了簡化這一點,存在大量的java框架 - 例如,Jackson和Gson for REST,JAXB for XML等 - 但處理基於HTTP的請求和響應的問題非常類似於您的平均servlet容器在幾年前解決。

最後,考慮安全性。例如,用戶名/密碼或OAuth? HTTP或HTTPS?

還有很多其他細節,但這些主題應該讓你忙一會兒。