2011年7月10日 星期日

Java REST Web Service(1)

相對於傳統的Web Services是以SOAP訊息為主,REST逐漸竄升為Open Service主流的服務提供方式,REST(REpresentational State Transfer)以資源導向來提供服務,最早出現在http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm,主要提供使用者以Http method來對資源進行操作(CRUD),如使用
-post method用來進行資源之新增
-delete method用來進行資源之刪除
-get method用來取得資源
-put method用來更新(or上傳)資源

Java提供了JAX-RS與Jersey來提供Java語言進行REST服務的開發與使用
Jersey: http://wikis.sun.com/display/Jersey/Main
http://www.vogella.de/articles/REST/article.html


import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;

@Path("/hello")
public class HelloService {
@GET//指定http method
@Produces("text/plain")//@Produces指定server回覆的response type
public String getMessage(){
return "Hello";
}
}

如此當使用者針對http://url/hello進行get method進行存取即可得到server回應的hello
servlet 2.x web.xml設定如下


Jersey Web Application
com.sun.jersey.spi.container.servlet.ServletContainer

javax.ws.rs.Application
tw.andy.rest



Jersey Web Application
/rest/*


init-param裡面須指定RESTful服務之package以供web server尋找request相對應之class
進階的檔案上傳功能則可使用jersey library來協助,文件如下:
http://aruld.info/handling-multiparts-in-restful-applications-using-jersey/

沒有留言: