Spring 입문 API

1c2·2023년 8월 17일
0

Spring 입문

목록 보기
5/16

클라이언트의 요청에 대한 response는 크게 2가지가 있다.
1. html
2. api

앞에서는 html을 response하는 것에 대해 다뤄보았고 이번에는 api를 제공해 줄것이다.

기본 문자 처리

HelloController에 다음 내용을 추가하자

@Controller
 public class HelloController {
   @GetMapping("hello-string")
   @ResponseBody
   public String helloString(@RequestParam("name") String name) {
   return "hello " + name;
   }
 }


페이지의 소스를 확인하면 다음과 같이 출력된다. 단순하게 string이 출력되는 것을 확인할 수 있다.

기본 객체 처리

다음으로 string대신 json을 response해보자.

HelloController안에 다음 내용을 추가하자

@Controller
public class HelloController {
    @GetMapping("hello-api")
    @ResponseBody
    public Hello helloApi(@RequestParam("name") String name) { //param으로 입력 받음
        Hello hello = new Hello();
        hello.setName(name);//입력받은 name을
        return hello; //hello 객체 반환
    }
    static class Hello { //hello 객체
        private String name; //key값

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

서버를 실행하여 view-source:http://localhost:8080/hello-api?name=%EC%8A%A4%ED%94%84%EB%A7%81 에 접속하면 다음과 같이 출력된다.

동작 방식

두 케이스 모두 controller에 @ResponseBody가 붙어 있는 것을 볼 수 있다. 이 태그를 붙이면 HTTP의 body에 문자를 직접 반환한다. 이 경우 viewresolver대신 HttpMessageConverter가 동작하는데 default로는 기본 문자 처리의 경우에StringHttpMessageConverter가, 기본 객체 처리에 MappingJackson2HttpMessageConverter가 동작한다.

0개의 댓글