Controller Annotation
한 줄 정의
Controller annotation은 HTTP 요청 정보를 Java method parameter와 method mapping으로 연결하는 표식이다.
자주 쓰는 annotation
@RestController
JSON API Controller를 만들 때 사용한다.
@RequestMapping
Controller 또는 method의 공통 URL path를 지정한다.
@GetMapping
GET 요청을 처리한다.
@PostMapping
POST 요청을 처리한다.
@PutMapping
PUT 요청을 처리한다.
@DeleteMapping
DELETE 요청을 처리한다.
@PathVariable
URL path에 들어간 값을 method parameter로 받는다.
@RequestParam
query parameter 값을 받는다.
@RequestBody
HTTP request body의 JSON을 DTO로 받는다.ZIP:ON에서 보는 예시
GET /api/regions/{regionId}
-> regionId는 @PathVariable 후보
GET /api/search?keyword=강남
-> keyword는 @RequestParam 후보
POST /api/favorites
-> body는 FavoriteCreateRequest 후보PathVariable과 RequestParam 차이
PathVariable:
리소스 식별자에 가깝다.
예: /api/community/posts/1
RequestParam:
조회 조건, 필터, 정렬에 가깝다.
예: /api/search?keyword=강남RequestBody를 쓰는 경우
생성
수정
복잡한 검색 조건
여러 필드를 가진 요청실습 미션
1. CommunityController에서 PathVariable이 들어가는 method를 찾는다.
2. RegionalIndicatorAnalysisRequest는 RequestParam 방식이 좋을지, RequestBody 방식이 좋을지 생각한다.
3. CommunityPostCreateRequest에 어떤 검증 annotation이 들어갈지 주석으로 적는다.