簡體   English   中英

創建Web服務的最佳實踐

[英]Best Practice for creating Web Services

作為序言,我是Web開發的新手。 我正在尋找圍繞有價值的各種文檔庫(初始CRUD功能)創建一組RESTful Web服務的核心。 從理論上講,這樣做是為了創建一個可完美重用和可伸縮的后端,以供將來無法預期的應用程序使用。

我的問題圍繞着這樣做的最佳實踐。 我的最初要求是我還要創建一個獨特的前端。 我將前端和后端完全分開的項目是為了增強可重用性。 它將增加開銷。

看一下使用GWT,Restlet和Java EE技術堆棧是否會完全影響設置。

最重要的是設計一個干凈的Java API-獨立於REST,RMI或您要使用的任何協議。 通過干凈的Java API,您可以支持任何訪問方法。

除非您有這些其他訪問方法的用例,否則請不要立即構建它們。 您可以在需要時構建它。

最初最容易添加的界面是基於Web的界面,其中您的Web應用程序在與核心API相同的JVM中運行。 如果適合您的用例,我會這樣做。 構建一個單獨的控制台應用程序以通過REST(或其他)協議訪問您的核心API的工作量很大。

Martin Fowler不久前寫了一篇關於REST基礎的非常不錯的文章: Richardson Maturity Model 發現了解REST的原理非常有幫助。

如果要使用基於REST的后端服務,則應使用RestyGWT項目,該項目允許您使用GWT-RPC編程樣式來訪問基於JSON的靜態服務。

在傳統的GWT-RPC服務之上使用基於REST的JSON服務的好處是,這些服務然后可以被其他客戶端使用,甚至可以更輕松地在mashup中使用。

如果您知道要在前端使用GWT,則可能要考慮使用GWT-RPC而不是REST。 這里有更多討論。

但是,如果您認為最終可能要通過REST API公開數據,或者在前端使用其他技術,則REST可能是一個更好的選擇。

gwt-rest項目也可能會有所幫助。

我和一位同事編寫了一個GWT系統,該系統使用了用於前端和后端的單獨項目。 使代碼清楚地知道在哪里執行很有幫助。 但是我不確定我是否會在將來的系統中分離事物。

另外,由於您是Web開發的新手,所以我認為您不應該期望可以完全重復使用后端。 您將學到很多東西。 我認為敏捷編碼人員會建議一種迭代方法,即(a)使一個小的方面起作用,然后(b)對其進行重構以使其美觀。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM