簡體   English   中英

什么是支持REST的基於Java Web的應用程序的良好技術堆棧?

[英]What is a good technology stack for a java web based application with REST support?

晚上全部:)

我正在尋找創建Java Web應用程序。 我設想它將使用Spring Web MVC和JSP,但是我想將某些功能公開為REST調用,因此我可以創建一個Android客戶端。

春天有什么能幫助我在這個地區嗎? 如何將REST代碼和Web前端代碼分開,而不必維護我的應用程序的基本上2個版本(一個用於Web,一個用於REST客戶端)。

不是尋找勺子喂食,只是我應該開始閱讀的一些指示。

正如其他人所提到的,Spring現在擁有相當不錯的內置REST支持。 與注釋結合使用時,可以非常簡單地設置RESTful API。 可以使用不同的視圖解析器配置Spring,例如,可以根據Accept標頭自動響應不同的數據視圖。 因此,您可以從相同的數據中自動返回JSON或JSP,請參閱ContentNegotiatingViewResolver 您的控制器和模型可以是常見的並實現一次,將工作留在View層中。

我之前使用過這種方法,當請求是通過AJAX返回JSON時,在瀏覽器訪問時使用相同數據構建的JSP視圖。

澤西島是一個非常漂亮的工具。 它與Spring,Guice和Jackson等工具很好地集成,為您提供了一種創建RESTful資源的無縫方式。

Jersey非常簡單,效果很好,並且可以作為引導的參考實現。 此外,它有一些很好的REST客戶端支持,其中很多可能會成為JAX-RS規范。

在與Spring MVC結合使用方面,我建議您確保為應用程序建模,以便擁有提供所需核心功能的外觀(服務類),然后根據需要在MVC代碼或REST中引用它們碼。 您不應該重復業務邏輯

你可以使用Spring 3.0來做到這一點。 Spring 3.0能夠指定@PathVariable s來從URL路徑中提取值(以前在Spring MVC中這並不容易)。

您還可以使用@RequestMapping指定控制器中每個方法應響應的HTTP方法。

我還使用Spring Security來實現API密鑰類型的功能。 這樣,您可以以易於REST客戶端實現的方式限制對API的訪問。 我不得不擴展org.springframework.web.filter.GenericFilterBean並添加一個正確的身份驗證,像這樣

SecurityContextHolder.getContext().setAuthentication(apiKeyAuth)

Apache CXF與Spring集成良好,並提供了許多公開服務的方法。 從CXF主頁的概述部分:

CXF使用前端編程API(如JAX-WS和JAX-RS)幫助您構建和開發服務。 這些服務可以使用各種協議,例如SOAP,XML / HTTP,RESTful HTTP或CORBA,並可以在各種傳輸上工作,例如HTTP,JMS或JBI。

暫無
暫無

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

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