RESTful API

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

원2 2021. 12. 6. 15:23
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 를 설정한 결과 값

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.9.4</version>
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.9.4</version>
        </dependency>
        
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.dataformat/jackson-dataformat-xml -->
          <dependency>
              <groupId>com.fasterxml.jackson.dataformat</groupId>
              <artifactId>jackson-dataformat-xml</artifactId>
              <version>2.12.5</version>
          </dependency>

 

 

출처 

https://codevang.tistory.com/262

 

스프링 Restful 서비스(API)_API 구현(XML) [3/3]

- Develop OS : Windows10 Ent, 64bit - WEB/WAS Server : Tomcat v9.0 - DBMS : MySQL 5.7.29 for Linux (Docker) - Language : JAVA 1.8 (JDK 1.8) - Framwork : Spring 3.1.1 Release - Build Tool : Maven 3.6..

codevang.tistory.com

 

728x90
반응형

'RESTful API' 카테고리의 다른 글

빈즈를 생성할수 없다는 식의 에러 내용  (0) 2021.12.07
gson 라이브러리  (0) 2021.12.07
마샬링, 언마샬링 공부중  (0) 2021.12.07
데이터를 JSON 형식으로 보내기  (0) 2021.12.02
REST API 디자인 가이드  (0) 2021.12.02
REST 개념  (0) 2021.11.30