스프링

API

hmjhaha 2024. 1. 11. 15:41

@Controller

public class HelloController { 

@GetMapping("hello-string")
    @ResponseBody 
    public String helloString(@RequestParam("name") String name) {
        return "hello " + name; // "hello spring"
    }

}

 

@ResponseBody 를 사용하면 뷰 리졸버( viewResolver )를 사용하지 않음

 

템플릿 엔진과 차이점 : 뷰 이런거 없고 데이터가 그대로 내려감
url: localhost:8080/hello-string?name=spring!!!!! 여기 들어가서 페이지 소스 확인하면
"hello spring!!!!!"만 나옴

 

html 바디가 아닌 http에서 바디부에 리턴값을 직접 넣어준다.

 

@Controller

public class HelloController { 

@GetMapping("hello-api")

 @ResponseBody

 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;
        }
    }

}

 

json으로 반환하는게 기본

json방식으로 데이터를 만들어서 http응답에 반환

json 스타일로 바꿔서 웹 브라우저로 보내줌

url : http://localhost:8080/hello-api?name=spring

@ResponseBody 를 사용하고, 객체를 반환하면 객체가 JSON으로 변환됨

 

@ResponseBody 를 사용

HTTP의 BODY에 문자 내용을 직접 반환

viewResolver 대신에 HttpMessageConverter 가 동작

기본 문자처리: StringHttpMessageConverter

기본 객체처리: MappingJackson2HttpMessageConverter