JAX-RS(Java API for RESTful Web Services)

 

JAX-RS(Java API for RESTful Web Services)는 Java EE(현재는 Jakarta EE)에서 RESTful 웹 서비스를 개발하기 위한 표준 API입니다.

JAX-RS는 어노테이션을 기반으로 간단하고 직관적인 방식으로 RESTful 웹 서비스를 구현할 수 있도록 도와줍니다.

 

1. JAX-RS 주요 개념

  • 리소스(Resource): REST 아키텍처에서 식별 가능한 개체로, URI를 통해 접근할 수 있습니다.
  • 리소스 클래스(Resource Class): 리소스를 구현하는 Java 클래스입니다.
  • 리소스 메서드(Resource Method): HTTP 요청을 처리하는 리소스 클래스의 메서드입니다.
  • 요청 매핑(Request Mapping): HTTP 요청을 리소스 메서드에 매핑하는 것입니다.
  • 주입(Injection): 요청 파라미터, 헤더, 쿠키 등을 리소스 메서드의 파라미터로 주입하는 것입니다.
  • 응답 처리(Response Handling): 리소스 메서드의 반환값을 HTTP 응답으로 변환하는 것입니다.

 

2. JAX-RS 구현체

JAX-RS는 명세(Specification)일 뿐, 실제 구현은 별도의 라이브러리를 통해 이루어집니다. 대표적인 JAX-RS 구현체로는 다음과 같은 것들이 있습니다.

  • Jersey: 오라클에서 개발한 JAX-RS 참조 구현입니다.
  • RESTEasy: JBoss에서 개발한 JAX-RS 구현체입니다.
  • Apache CXF: Apache Software Foundation에서 개발한 오픈 소스 프레임워크로, JAX-RS를 지원합니다.

 

3. JAX-RS 어노테이션

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

  • @Path: 리소스 클래스나 메서드의 상대 경로를 지정합니다.
  • @GET, @POST, @PUT, @DELETE 등: HTTP 메서드를 지정합니다.
  • @Produces: 응답의 미디어 타입을 지정합니다.
  • @Consumes: 요청의 미디어 타입을 지정합니다.
  • @PathParam: URI 경로에서 파라미터를 추출합니다.
  • @QueryParam: 쿼리 파라미터를 추출합니다.
  • @HeaderParam: 요청 헤더에서 값을 추출합니다.
  • @CookieParam: 쿠키에서 값을 추출합니다.

 

4. JAX-RS 예제

다음은 JAX-RS를 사용하여 간단한 RESTful 웹 서비스를 구현한 예제입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
@Path(“/users”)
public class UserResource {
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public List<User> getAllUsers() {
        // 모든 사용자 정보 조회
        return userService.findAllUsers();
    }
    @GET
    @Path(“/{id}”)
    @Produces(MediaType.APPLICATION_JSON)
    public User getUser(@PathParam(“id”) Long id) {
        // 특정 사용자 정보 조회
        return userService.findUserById(id);
    }
    @POST
    @Consumes(MediaType.APPLICATION_JSON)
    public Response createUser(User user) {
        // 새로운 사용자 생성
        User createdUser = userService.createUser(user);
        return Response.created(URI.create(“/users/” + createdUser.getId())).build();
    }
}
cs

 

위 예제에서는 /users 경로에 대한 GET, POST 요청을 처리하는 리소스 메서드를 정의하였습니다.

@Produces@Consumes 어노테이션을 사용하여 요청과 응답의 미디어 타입을 지정하였고, @PathParam을 사용하여 URI 경로에서 파라미터를 추출하였습니다.

JAX-RS는 RESTful 웹 서비스 개발을 위한 강력하고 유연한 API를 제공합니다. JAX-RS를 사용하면 간결하고 표준화된 방식으로 RESTful 웹 서비스를 구현할 수 있으며, 다양한 Java EE 컨테이너에서 실행할 수 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다