- 각 플랫폼에 맞게 서버를 일일이 만드는 것이 굉장히 비효울적임을 느낀 이들이 HTTP 메소드들(GET,POST,PUT,DELETE)을 활용하여 어떤 플랫폼을 사용하든지 간에 클라이언트와 서버 간에 동일하게 데이터를 주고 받을 수 있는 아키텍처를 만들어 낸 것이다.
- REST는 하나의 URI는 하나의 고유한 리소스(Resource)를 대표하도록 설계된다는 개념입니다. 디바이스의 종류에 상관없이 공통으로 데이터를 처리할 수 있도록 하는 방식을 REST라고 합니다.
-REST API는 사용자가 어떠한 요청을 했을 때 HTML을 리턴하지 않고, 자바스크립트를 이용해서 사용자가 필요로 하는 결과(데이터)만을 리턴해주는 방식이다.
● @RequestMapping란?
- 특정 uri로 요청을 보내면 Controller에서 어떠한 방식으로 처리할지 정의를 한다. 이때 들어온 요청을 특정 메서드와 매핑하기 위해 사용하는 것이 @RequesMapping이다.
- @RequesMapping에서 가장 많이사용하는 부분이 value와 method이다.
-value는 요청받을 url을 설정하게 된다. method는 요청으로 받을지 정의하게 된다.(GET,POST,PUT,DELETE 등)
● @RequiredArgsConstructor란?
- @RequiredArgsConstructor는 final혹은 @NotNull이 붙은 필드의 생성자를 자동으로 만들어준다. 이를 통해 새로운 필드를 추가할 때 다시 생성자를 만들거나 하는 등의 번거로움을 없앨 수 있다. 하지만 자동적으로 생성자가 만들어지기 때문에 내가 예상하지 못한 결과나 오류가 발생할 수 있기 때문에 그런 점도 염두해둬야 한다.
● @RestController이란?
- @Controller + @ResponseBody가 합쳐진 형태로 JSON 형태의 객테 데이터를 반환한다. Rest Api를 통해 JSON으로 데이터만 전달하기 때문에 편리성을 위해 사용한다
- RestController를 붙이면, 컨트롤러 클래스 하위 메서드에 @ResponseBody 어노테이션을 붙이지 않아도 문자열과 JSON 등을 전송할 수 있습니다.
● @Slf4j란?
- 좀 더 편하게 로그를 찍기 위해서
여기 REST에서 Map을 쓰는 이유는 JSON형식을 받기 위해서 Map을 사용한다.
@RequestMapping(value="/insert.json", method={RequestMethod.POST})
메소드를 Post로 지정하고 uri를 insert.json으로 지정한다.
Mapper를 이용해서 Map에 값을 넣는다.(POSTMEN을 이용해서 확인한다)