이번 포스트에서는 JAX-RS(Java API for RESTful Web Services) 어노테이션을 사용하여 RESTful 웹 서비스를 개발하는 방법에 대해 알아보겠습니다.
JAX-RS란?
JAX-RS는 자바 기반의 RESTful 웹 서비스를 개발할 수 있는 API입니다. 이 API를 사용하면 간편하게 RESTful 웹 서비스를 개발할 수 있으며, HTTP 메서드(POST, GET, PUT, DELETE)를 사용하여 리소스에 대한 CRUD(Create, Read, Update, Delete) 작업을 수행할 수 있습니다.
JAX-RS 어노테이션
JAX-RS는 다양한 어노테이션을 제공하여 개발자가 간단하게 RESTful 웹 서비스를 구현할 수 있도록 도와줍니다. 몇 가지 주요한 어노테이션을 살펴보겠습니다.
@Path
@Path
어노테이션은 리소스 클래스나 메서드의 경로를 지정하는 데 사용됩니다. 예를 들어, /books
경로를 가지는 리소스를 만들려면 다음과 같이 @Path
어노테이션을 사용합니다.
@Path("/books")
public class BookResource {
//...
}
@GET, @POST, @PUT, @DELETE
HTTP 메서드에 해당하는 작업을 수행하기 위해 @GET
, @POST
, @PUT
, @DELETE
어노테이션을 사용합니다. 각 어노테이션은 메서드에 적용됩니다. 예를 들어, GET 메서드를 처리하기 위해 다음과 같이 @GET
어노테이션을 사용합니다.
@GET
@Path("/{id}")
public Response getBookById(@PathParam("id") int id) {
//...
}
@PathParam
@PathParam
어노테이션은 경로의 일부를 메서드의 파라미터로 전달하기 위해 사용됩니다. 위의 예제에서는 id
경로 변수를 getBookById
메서드의 파라미터로 전달하는 방법을 보여주고 있습니다.
예제 코드
다음은 JAX-RS 어노테이션을 사용하여 간단한 RESTful 웹 서비스를 개발하는 예제 코드입니다.
@Path("/books")
public class BookResource {
@GET
@Path("/{id}")
public Response getBookById(@PathParam("id") int id) {
// 책 ID에 해당하는 책 데이터 반환
Book book = // 책 데이터 가져오기
if (book != null) {
return Response.ok(book).build();
} else {
return Response.status(Response.Status.NOT_FOUND).build();
}
}
@POST
public Response createBook(Book book) {
// 새 책 데이터를 저장하고 새로운 책 ID 반환
int newBookId = // 책 데이터 저장
URI location = UriBuilder.fromResource(BookResource.class)
.path("/{id}")
.build(newBookId);
return Response.created(location).build();
}
// ...
}
위의 예제에서는 BookResource
클래스에 /books
경로를 설정하고, getBookById
메서드는 GET 요청을 처리하며, createBook
메서드는 POST 요청을 처리합니다.
결론
JAX-RS 어노테이션을 사용하면 간단하게 RESTful 웹 서비스를 개발할 수 있습니다. @Path
, @GET
, @POST
, @PUT
, @DELETE
, @PathParam
어노테이션을 익혀서 다양한 기능을 구현할 수 있습니다. JAX-RS의 자세한 내용과 API 문서는 Oracle 공식 문서를 참조하시기 바랍니다.