1. GET / POST 관련 Annotaion
01. @RestController
- Controller로서 동작하기 위해서는 어노테이션
- 해당 Class는 REST API 처리하는 Controller
- 전통적인 Spring MVC의 컨트롤러인 @Controller와 Restuful 웹서비스의 컨트롤러인 @RestController의 주요한 차이점은 HTTP Response Body가 생성되는 방식
- @Controller, Spring MVC의 컨트롤러에서는 데이터를 반환하기 위해 @ResponseBody 어노테이션을 활용
- @RestController는 Spring MVC Controlle에 @ResponseBody가 추가된 것
02. @RequestMapping
- RequestMapping URI를 지정해주는 Annotaion
- 요청에 대해 어떤 Controller, 어떤 메소드가 처리할지를 맵핑하기 위한 어노테이션
- 클라이언트는 URL로 요청을 전송하고, 요청 URL을 어떤 메서드가 처리할지 여부를 결정하는 것
- 클래스나 메서드 선언부에 @RequestMapping과 함께 URL을 명시하여 사용
- 메서드 내에서 viewName을 별도로 설정하지 않으면 @RequestMapping의 path로 설정한 URL이 그대로 viewName으로 설정
- value(path)만 지정하면 get, post, put, delete 모든 요청에 응답
- @RequestMapping(path = "/hi", method = RequestMethod.GET)으로 포커싱을 해주어야 함
03. @GetMapping
- HTTP GET 요청을 특정 핸들러 메소드에 맵핑하기위한 annotation
- 주소에 파라미터가 노출 됨
04. @PathVariable
- URL 경로에 변수를 넣어주는것
- URL 정의 부분과 Method 내의 Parameter 부분에 정의를 하여 사용
- 어노테이션 값으로 {템플릿변수} 를 사용
- @PathVariable 어노테이션을 이용해서 {템플릿 변수} 와 동일한 이름을 갖는 파라미터를 추가
05. @RequestParam
- GET방식으로 넘어온 URI의 Quesry Parameter을 받기위한 어노테이션
06. @PostMapping
- HTTP POST 요청을 특정 핸들러 메소드에 맵핑하기위한 annotation
- Request Body에 데이터를 담아서 보내짐
07. @RequestBody
- 클라이언트가 전송하는 Json(application/json) 형태의 HTTP Body 내용을 Java Object로 변환시켜주는 어노테이션
- @RequestBody로 받는 데이터는 Spring에서 관리하는 MessageConverter들 중 하나인 MappingJackson2HttpMessageConverte를 통해 Java 객체로 변환
08. @JsonProperty(전송받은 Key 명)
- 객체의 JSON 변환시 key의 이름을 개발자가 원하는대로 설정해주는 어노테이션
- jackson 라이브러리를 다운받아야 한다
09. @JsonNaming(value = PropertyNamingStrategy.SnakeCaseStrategy.class)
- naming 룰 설정
- 일괄적으로 naming 룰 수정
10. Map map.entrySet()
- entrySet() 메서드는 key와 value의 값이 모두 필요한 경우 사용
2. PUT 관련 Annotaion
01. @PutMapping
- HTTP PUT 요청을 특정 핸들러 메소드에 맵핑하기위한 annotation
- Request Body에 데이터를 담아서 보내짐
3. DELETE 관련 Annotaion
01. @DeleteMapping
- HTTP Delete 요청을 특정 핸들러 메소드에 맵핑하기위한 annotation
4. @Controller
01. @Controller
- View를 반환하기 위해 사용되는 어노테이션
- Data를 반환 시 @ResponseBody 어노테이션을 활용해주며 이를 통해 @Controller도 Json 형태로 데이터를 반환 가능
02. @ResponseBody
- Data를 반환 시 @ResponseBody 어노테이션을 활용해주며 이를 통해 @Controller도 Json 형태로 데이터를 반환 가능