[java] JAX-RS 데이터 전달 방식(XML, JSON, MIME 등)

JAX-RS는 Java에서 RESTful 웹 서비스를 개발하기 위한 API입니다. 데이터의 전달 방식은 클라이언트와 서버 간 통신할 때 중요한 문제입니다. JAX-RS는 다양한 데이터 전달 방식을 지원합니다. 여기에서는 JAX-RS에서 제공하는 XML, JSON, MIME 타입 등의 데이터 전달 방식에 대해 알아보겠습니다.

XML 전달 방식

XML은 데이터를 계층적 구조로 표현할 수 있는 마크업 언어입니다. JAX-RS에서 XML을 전달하기 위해 @Produces 어노테이션과 @XmlRootElement 어노테이션을 사용할 수 있습니다. @Produces 어노테이션을 통해 해당 리소스 메소드가 XML로 응답을 전달함을 설정할 수 있고, @XmlRootElement 어노테이션을 통해 자바 객체를 XML로 변환할 수 있습니다.

다음은 XML로 데이터를 전달하는 JAX-RS 예제입니다.

@Path("/employees")
public class EmployeeResource {
    
    @GET
    @Produces(MediaType.APPLICATION_XML)
    public Employee getEmployee() {
        Employee employee = new Employee("John Doe", "Software Engineer");
        return employee;
    }
}

@XmlRootElement
public class Employee {
    
    private String name;
    private String position;
    
    public Employee() {}
    
    public Employee(String name, String position) {
        this.name = name;
        this.position = position;
    }
    
    // Getters and setters
}

JSON 전달 방식

JSON은 JavaScript Object Notation의 약자로, 데이터를 속성-값 쌍으로 표현하는 경량의 데이터 교환 형식입니다. JAX-RS에서 JSON을 전달하기 위해 @Produces 어노테이션과 Jackson, Gson 등의 라이브러리를 사용할 수 있습니다. @Produces(MediaType.APPLICATION_JSON) 어노테이션을 통해 해당 리소스 메소드가 JSON으로 응답을 전달함을 설정할 수 있습니다.

다음은 JSON으로 데이터를 전달하는 JAX-RS 예제입니다.

@Path("/employees")
public class EmployeeResource {
    
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public Employee getEmployee() {
        Employee employee = new Employee("John Doe", "Software Engineer");
        return employee;
    }
}

public class Employee {
    
    private String name;
    private String position;
    
    public Employee() {}
    
    public Employee(String name, String position) {
        this.name = name;
        this.position = position;
    }
    
    // Getters and setters
}

MIME 타입

JAX-RS는 다양한 MIME 타입을 지원합니다. 각 MIME 타입은 데이터를 특정 형식으로 전달하는데 사용됩니다. 몇 가지 MIME 타입 예시는 다음과 같습니다.

@Produces 어노테이션을 통해 각 MIME 타입을 설정할 수 있습니다. 예를 들어, @Produces(MediaType.APPLICATION_XML)은 XML 형식으로 응답을 전달함을 설정합니다.

이렇게 JAX-RS에서 제공하는 XML, JSON, MIME 타입 등의 데이터 전달 방식을 활용하여 원하는 형식으로 데이터를 주고받을 수 있습니다.

참고 자료