@ResponseBody 를 통해 API 방식으로 response처리를 할 수 있다.

@GetMapping("hello-string")
    @ResponseBody  // html의 <body>가 아니라 HTTP의 body에 return값을 직접 넣겠다는 의미
                   // html 태그를 통해 전달하는 것이 아니라 문자열만 그대로 보내는 것
    public String helloString(@RequestParam("name") String name) {
        return "hello " + name;
    }

    @GetMapping("hello-api")
    @ResponseBody  // 이렇게 객체를 넘기게 되면 JSON 형식으로 화면에 띄워준다
    public Hello helloApi(@RequestParam("name") String name) {
        Hello hello = new Hello();
        hello.setName(name);
        return hello;
    }


    static class Hello {
        private String name;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }
    }

String을 그대로 띄워주는 방식은 거의 사용하지 않는다.

대부분이 객체를 전달하는 방식으로 사용된다.

 

@GetMapping에 의해 helloApi()가 호출되고 @ResponseBody에 의해 helloApi()의 return값을 그대로 HTTP body에 띄워준다.

이떄 return값에 따라 각각 다른 Converter가 작동한다.

객체가 return되면 MappingJackson2HttpMessageConverter가 작동하는 것으로 기본 등록되어있다.

(Jackson : 객체 -> JSON으로 변환해주는 라이브러리)

 

 

 

출처 : www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8

+ Recent posts