RESTful web服務最近有多流行已經無需我多評價。是的,你的確需要它,但如何選擇呢?我嘗試了不同的Java REST框架,基本上都是Jersey和Spring MVC。我認爲大多數情況下Spring是構建RESTful應用程序的首選。
如果你已經有了一個Spring app,接下來不需要做任何複雜的配置就可以用Spring開始實現RESTful API了。只要使用標準的註解配置向下面這樣配置JSON視圖解析器(view resolver ):
//這個示例使用了Groovy,相信你能夠理解
@Constoller
@RequestMapping('/api/user')
class UserApi {
@RequestMapping(value = '/{id}', method = RequestMethod.GET)
User get(@PathVariable long id) {
//... load user, etc
}
@RequestMapping(value = '/{id}', method = RequestMethod.POST)
User update(@PathVariable long id, @RequestModel User updated) {
//... load user, update values, etc
}
}
當然,你可以不用JSON轉而XML或者使用ProtoBuf以及其他什麼。這很簡單而且不會因爲修改造成代碼錯誤,比起Jersey要簡單很多。 |
通常你的應用程序除了RESTful API還會有其他東西,比如標準的HTML頁面、文件下載/上傳、複雜的API請需求數據流處理、重要的後臺處理、數據庫訪問、複雜的認證和授權與外部服務集成等等。Spring框架可以將這些完成得很好。同時我最喜歡的就是,通常會有兩種辦法達成目標:“應急辦法”和常規辦法:)
實際上我是Grails web的粉絲,我真的很喜歡它並且爲Grails寫了一些插件。我相信構建傳統 web應用方面Grails是最好的框架。但是當我看見採用RESTful構建和一些現代應用之後(大多數是“單頁面App”)——我總是會建議使用Spring MVC (+ Groovy,這又是另外一個話題)。
一些有用的鏈接:
- Spring – http://www.springsource.org/spring-framework
- Spring安全項目,如果你需要使用認證–http://www.springsource.org/spring-security
- 所有Spring項目 – http://www.springsource.org/projects
- 如果真的打算做一個好的RESTful應用,你需要Spring HATEOAS –https://github.com/SpringSource/spring-hateoas
- Spring MVC文檔 –http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/mvc.html
- 一篇使用Spring進行內容交互的好文 –http://blog.springsource.org/2013/05/11/content-negotiation-using-spring-mvc/