본문 바로가기
프로그래밍/SpringMVC_기초

API

by ILove_NS_MoKa 2023. 10. 14.

@ResponseBody 문자 반환

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

대신에 HTTP의 BODY에 문자 내용을 직접 반환(HTML BODY TAG를 말하는 것이 아님)

 

실행

http://localhost:8080/hello-string?name=@test@!!

1
2
3
4
5
    @GetMapping("hello-string")
    @ResponseBody //http 바디(직접넣어주겠다)
    public  String helloString(@RequestParam("name")String name){
        return "hello " +name; //hello @test@!!
    }
cs

 

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    @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;
        }
    }
cs

 

 

 @ResponseBody
가 없을경우 ViewResolver 에 템플릿을 찾는다
ResponseBody가 있으면 문자일경우 http 에 문자를 던지고 (StringConverter 작동)
객체 가 있을경우 (기본 Json 디폴트)  Json방식으로 데이터를 만들어서 Http 에 응답한다. (JsonConverter 작동)

 

 

@ResponseBody 를 사용

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

   viewResolver 대신에 HttpMessageConverter 가 동작

   기본 문자처리: StringHttpMessageConverter       // public  String helloString

   기본 객체처리: MappingJackson2HttpMessageConverter  // public Hello helloApi

   byte 처리 등등 기타 여러 HttpMessageConverter가 기본으로 등록되어 있음

 

 

> 참고: 클라이언트의 HTTP Accept 해더와 서버의 컨트롤러 반환 타입 정보 둘을 조합해서 HttpMessageConverter 가 선택된다. 더 자세한 내용은 스프링 MVC 강의에서 설명하겠다.

'프로그래밍 > SpringMVC_기초' 카테고리의 다른 글

회원관리 예제-2 (Optional)  (0) 2023.10.14
회원관리 예제 -1  (0) 2023.10.14
MVC와 템플릿 엔진  (0) 2023.10.13
정적 컨텐츠  (0) 2023.10.13
윈도우 스프링부트 빌드  (0) 2023.10.13