[java] JAX-RS 요청과 응답 처리

JAX-RS는 Java API for RESTful Web Services의 약어로, RESTful 웹 서비스를 위한 자바 API입니다. 이를 사용하면 간편하게 RESTful 웹 서비스를 개발할 수 있습니다. 이번 글에서는 JAX-RS를 사용하여 요청과 응답을 처리하는 방법에 대해 알아보겠습니다.

1. JAX-RS의 기본 개념

JAX-RS는 주로 어노테이션을 사용하여 웹 서비스를 정의하고 구현합니다. 주요 어노테이션은 다음과 같습니다.

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에 대한 자세한 내용과 다양한 기능을 알아보려면 위의 참고 자료를 참고하시기 바랍니다.