웹서비스를 구현하는 방식은 SOAP과 REST 방식이 있습니다. 그중 REST 방식은 간단하게 구현할 수 있어서 많이 사용되는 방식 입니다.
REST와 RESTfull 서비스에 대해서 간단하게 정리를 하였고 JAX-RS를 소개 하고 있습니다.
REST와 RESTfull 서비스에 대해서 간단하게 정리를 하였고 JAX-RS를 소개 하고 있습니다.
RESTfull
- REST (REspresentational State Transfer)
- URI를 통해 Resource를 요청하고 이를 통해 표현 상태의 변경을 유발하는 통신 Architecture
- REST 방식의 웹서비스는 세션을 사용하지 않습니다.
- RESTfull : REST 개변에 충실하게 구현된 웹 Application과 구조
Resource GET
조회PUT
수정POST
등록DELETE
삭제Collection URI
http://localhost/resources자료 목록 반환 전체 자료 수정 새로운 자료 생성 전체 자료 삭제 Element URI
http://localhost/resources/123지정한 자료 반환 지정한 자료 수정/생성 새로운 자료 생성 지정한 자료 삭제
- JAX-RS
- JSR-311, Java Annotation API
- Java API for RESTfull Web Services (2007 ~)
- 구현체
- JAX-RS Annotations
- @Path : 리소스에 대한 접근 경로
- @GET, @POST, @PUT, @DELETE : Http Request Method
- @Produces : 반환하는 데이터의 미디어 타입 (XML, JSON)
- @Consumes : 요청 데이터의 미디어 타입
- URI matrix parameter
- @QueryParam : http://localhost/member?no=12&name=kim
- @MatrixParam : http://localhost/member;no=12;name=kim
- @PathParam : http://localhost/member/no/12/name/kim
- Parameter type
- public static valueOf(String), public static fromString(String)
- List<T>, Set<T>, SortedSet<T>
- JAX-RS Sample
@Path("widgets")
@Produces("application/xml")
public class WidgetsResource {
@GET
@Path("offers")
public WidgetList getDiscounted() {
}
//--- Sub-resource Method, 요청을 직접 처리
@GET
@Path("offers/{id}")
@Consumes("application/json")
public Widget findWidget(@QueryParam("id") String id) {
}
@GET
@Produces("text/html")
public String getAsHtml() {
}
//--- Sub-resource Locator, 요청을 처리할 객체를 반환
//--- @GET과 같은 Request Method 지정 어노테이션을 반드시 생략할 것
@Path("offers/{id}")
public WidgetResource findWidget(@QueryParam("id") String id) {
return new WidgetResource(id);
}
}
public class WidgetResource {
public WidgetResource(String id) {
}
@Get
public Widget getDetails() {
}
}
- Restlet 설정
- GAE/J(Google App Engine for Java)에 restlet 환경을 설정해 보자.
- 다운로드 사이트에서 restlet-1.1.10.zip 파일을 다운로드 한다.
- restlet-1.1.10.zip 파일의 압축을 풀어 lib 디렉토리에 있는 jar 파일을 GAE/J 애플리케이션의 /war/WEB-INF/lib 디렉토리로 복사 한다.
- 참고 문헌
- Implementing-REST : RESTful 형태의 API 를 구축할때 필요한 정보를 한데 모은 사이트
- REST, 2010.4
- RESTful한 웹 서비스 만들기, 2008.9
- Android에서 RESTfull
- RESTful 웹서비스에 대해 알아보자, 2011.1
- Jersey와 Spring으로 RESTful 웹 서비스 구축하기, 2011.2
*** 참고 문헌 ***
Posted by 산사랑

