데이터를 Xml 방식으로 보내기

데이터를 Xml 방식으로 보내기

728x90

스프링에서 REST 방식을 지원할 때 가장 기본이 되는 데이터 형식은 JSON이다.

그렇기 때문에 JSON을 사용할 때에는 데이터 타입이 JSON이라는 것을 굳이 명시할 필요가 없다.

설정을 해두지 않으면 Content-Type이 JSON인지 아닌지 확인하거나, 응답할때 Content-Type을 JSON으로 설정해서 보내준다.

이 과정은 서블릿의 핸들러아 메세지 컨버터가 자동으로 진행한다.

그러나 XML을 사용하기 위해서는 해당 데이터가 XML 형식이라는 것을 명시해줘야 한다.

XML 데이터를 받거나 전송할 Dto(VO) 클래스에 어노테이션을 통해 이 객체의 변환 형식은 XML이라는 것을 표시해주면 이를 인지하고 처리해준다.

Dto(VO) 객체에 어노테이션을 추가하는 것 외에는 JSON을 사용할 때와 동일한 방법으로 사용하면 된다.

자바 객체를 XML로 변환하는 작업을 마샬링(Marshalling)

XML을 자바 객체로 변환하는 것을 언마샬링이라고 한다.(UnMarshalling)

https://codevang.tistory.com/262

이번에는 데이터를 JSON 방식으로 보내보겠따.

서비스 없이 Dto(VO), Controller 만으로 보내보자

Dto (VO)

@XmlAttribute 로 설정

간단하게 Dto 생성

@XmlElement 로 설정

import lombok.Data; import javax.xml.bind.annotation.*; @Data @XmlRootElement(name = "user") // xml의 루트 태그를 의미 name를 명시하지 않으면 클래스명이 디폴트가 된다. @XmlAccessorType(XmlAccessType.NONE) // xml의 직렬화 범위를 결정 public class RestfulApiDto2 { @XmlAttribute // 루트 태그의 값 private String id; @XmlElement // 하위 태그의 값 private String pw; @XmlElement private String name; }

Controller

@RequestMapping(value = "/restfulApiXml", method = RequestMethod.GET) @ResponseBody public RestfulApiDto2 sendxml() { RestfulApiDto2 user = new RestfulApiDto2(); user.setId("나는 아이디에용"); user.setPw("나는 비밀번호에용"); user.setName("나는 이름이에용"); return user; }

@XmlAttribute 를 설정한 결과 값

@XmlElement 를 설정한 결과 값

출처

https://codevang.tistory.com/262

728x90

from http://210one2.tistory.com/345 by ccl(A) rewrite - 2021-12-06 15:26:37