☑️ @RestController
- 어노테이션을 추가한 해당 클래스가 REST API의 리소스를 처리하기 위한 API의 엔드포인트로 동작함을 정의
- 해당 어노테이션을 추가하면, 애플리케이션 로딩 시 Spring Bean으로 등록
☑️ @RequestMapping
- 클라이언트의 요청과 Controller의 핸들러 메서드(Handler Method)를 맵핑(Mapping) 해주는 역할
- RequestMapping에 정의된 URI에 매치되는 요청을 처리할 수 있도록 도와줌
- 클래스 레벨, 메서드 레벨에 사용 가능
- 일반적으로 공통 URI는 클래스 레벨에 정의, 핸들러 메서드별로 달라지는 URI는 각각의 핸들러 메서드에 정의
- 일반적으로 클래스 레벨에는 @RequestMapping을 사용하고, 메서드 레벨에서는 단축표현 사용
- 단축 표현 : @GetMapping, @PostMapping, @PutMapping, @PatchMapping, @DeleteMapping
✔️ @GetMapping
- 클라이언트가 서버에 리소스를 조회할 때 사용하는 어노테이션
- HTTP GET 메서드에 해당하는 단축 표현
✔️ @PostMapping
- 클라이언트가 서버에 리소스를 등록할 때 사용하는 어노테이션
- HTTP POST 메서드에 해당하는 단축 표현
✔️ @PutMapping
- 클라이언트가 서버에 리소스를 모든 정보를 수정할 때 사용하는 어노테이션
- HTTP PUT 메서드에 해당하는 단축 표현
✔️ @PatchMapping
- 클라이언트가 서버에 리소스를 일부 정보만 수정할 때 사용하는 어노테이션
- HTTP PATCH 메서드에 해당하는 단축 표현
✔️ @DeleteMapping
- 클라이언트가 서버에 리소스를 삭제할 때 사용하는 어노테이션
- HTTP DELETE 메서드에 해당하는 단축 표현
☑️ @RequestParam
- 핸들러 메서드의 파라미터 종류 중 하나
- 주로 클라이언트에서 전달하는 요청 데이터를 쿼리 파라미터(Query Parmeter 또는 Query String), 폼 데이터(form-data), x-www-form-urlencoded 형식으로 전송하면 이를 서버 쪽에서 전달 받을 때 사용하는 어노테이션
- 다른 형식이면(raw로 해서 JSON 해 봄 )
- IDE에서는 MissingServletRequestParameterException 발생
- Postman에서는 'status : 400, Bad Request' 에러(확인 완료)
☑️ @RequestHeader
- Request 헤더를 바인딩해서 헤더의 key/value 값에 접근
☑️ @RequestBody
- Request 바디를 읽어서 지정한 Java 객체로 역직렬화
- 클라이언트에서 전송하는 Request Body가 JSON 형식이어야 함
- 다른 형식이면(x-www-form-urlencoded 형식으로 해 봄)
- IDE에서는 HttpMediaTypeNotSupportedException 발생
- Postman에서는 'status : 415, Unsupported Media Type' 에러 (확인 완료)
☑️ @RequestPart
- 'multipart/form-data'형식의 Request 데이터를 Part별로 바인딩 할 수 있도록 함
☑️ @PathVariable
- 핸들러 메서드의 파라미터 종류 중 하나
- MissingPathVariableException
- 클라이언트 요청 URI에 패턴 형식으로 지정된 변수의 값을 파라미터로 전달받을 수 있음
☑️ @MatrixVariable
- URL 경로 세그먼트 부분에 key/value 쌍으로 된 데이터에 바인딩 할 수 있도록 함
☑️ HttpEntity
- Request 바디와 헤더에 접근할 수 있는 컨테이너 객체 사용 가능
☑️ javax.servlet.ServletRequest
☑️ javax.servlet.ServletResponse
- 로우 레벨의 서블릿 요청과 서블릿 응답 정보가 필요할 때 사용 가능
'Spring' 카테고리의 다른 글
[Spring] 예외 처리 - Controller에서 처리 (0) | 2022.10.27 |
---|---|
[Spring] MapStruct 사용하여 Mapper 구현하기 (0) | 2022.10.20 |
[Spring Framework] ResponseEntity (0) | 2022.08.25 |
[Spring] Spring MVC (0) | 2022.08.24 |
[Spring] AOP란 (0) | 2022.08.17 |
댓글