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 타입 예시는 다음과 같습니다.
MediaType.APPLICATION_XML
: XML 형식으로 데이터를 전달합니다.MediaType.APPLICATION_JSON
: JSON 형식으로 데이터를 전달합니다.MediaType.TEXT_HTML
: HTML 형식으로 데이터를 전달합니다.MediaType.TEXT_PLAIN
: 일반 텍스트 형식으로 데이터를 전달합니다.
@Produces
어노테이션을 통해 각 MIME 타입을 설정할 수 있습니다. 예를 들어, @Produces(MediaType.APPLICATION_XML)
은 XML 형식으로 응답을 전달함을 설정합니다.
이렇게 JAX-RS에서 제공하는 XML, JSON, MIME 타입 등의 데이터 전달 방식을 활용하여 원하는 형식으로 데이터를 주고받을 수 있습니다.