JAX-RS는 Java API for RESTful Web Services의 약어로, RESTful 웹 서비스를 위한 자바 API입니다. 이를 사용하면 간편하게 RESTful 웹 서비스를 개발할 수 있습니다. 이번 글에서는 JAX-RS를 사용하여 요청과 응답을 처리하는 방법에 대해 알아보겠습니다.
1. JAX-RS의 기본 개념
JAX-RS는 주로 어노테이션을 사용하여 웹 서비스를 정의하고 구현합니다. 주요 어노테이션은 다음과 같습니다.
- @Path: 웹 서비스의 URL 경로를 지정합니다.
- @GET, @POST, @PUT, @DELETE: HTTP 메서드를 지정합니다.
- @PathParam: URL 경로에 포함된 파라미터를 추출합니다.
- @QueryParam: 쿼리 파라미터를 추출합니다.
- @Consumes: 요청의 미디어 타입을 지정합니다.
- @Produces: 응답의 미디어 타입을 지정합니다.
2. 요청 처리
2.1. GET 요청 처리
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.core.Response;
@Path("users")
public class UserResource {
@GET
@Path("/{id}")
public Response getUser(@PathParam("id") String id) {
// 사용자 ID에 해당하는 정보를 조회하는 로직
User user = userService.getUser(id);
if (user != null) {
return Response.ok(user).build();
} else {
return Response.status(Response.Status.NOT_FOUND).build();
}
}
}
위의 코드에서 @Path
어노테이션은 /users
경로로 들어오는 요청을 이 메서드로 처리하도록 지정하고, @GET
어노테이션은 HTTP GET 메서드를 처리한다는 것을 나타냅니다. @PathParam
어노테이션은 URL 경로에서 추출한 파라미터 값을 매개변수로 받습니다. 조회한 사용자 정보를 응답으로 반환하거나, 사용자를 찾지 못한 경우 404 에러를 반환합니다.
2.2. POST 요청 처리
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Consumes;
import javax.ws.rs.core.Response;
@Path("users")
public class UserResource {
@POST
@Consumes(MediaType.APPLICATION_JSON)
public Response createUser(User user) {
// 사용자 생성 로직
userService.createUser(user);
return Response.status(Response.Status.CREATED).build();
}
}
위의 코드에서 @POST
어노테이션은 HTTP POST 메서드를 처리한다는 것을 나타냅니다. @Consumes
어노테이션은 요청의 미디어 타입이 application/json
임을 나타냅니다. 사용자 정보를 받아서 생성하는 로직을 구현하고, 생성된 사용자의 URL을 응답으로 반환합니다.
3. 응답 처리
JAX-RS는 기본적으로 Response
객체를 사용하여 응답을 처리합니다. Response
객체는 상태 코드, 헤더, 본문과 같은 요소들을 포함할 수 있습니다. 응답을 생성할 때 Response
객체를 구성하여 반환하면 됩니다.
4. 참고 자료
JAX-RS에 대한 자세한 내용과 다양한 기능을 알아보려면 위의 참고 자료를 참고하시기 바랍니다.