매서드 매핑
@RequestMapping
Spring Framework에서 웹 애플리케이션의 컨트롤러 클래스나 메서드에 부여되는 어노테이션 중 하나로,
HTTP 요청과 특정 컨트롤러 메서드를 매핑(연결)하는 역할을 함
이 어노테이션을 사용하여 클라이언트의 HTTP 요청을 특정 메서드로 라우팅하고
해당 메서드를 실행하도록 설정할 수 있음
@RequestMapping은
다양한 속성을 사용하여 요청 메서드, 경로, 요청 헤더, 요청 파라미터 등을 기반으로
메서드와의 매핑을 정의할 수 있음
value 또는 path: 요청을 처리할 URL 경로를 지정합니다. 여러 경로를 지정하려면 배열 형태로 지정할 수 있습니다.
method: HTTP 요청 메서드를 지정합니다. 주로 GET, POST, PUT, DELETE와 같은 메서드를 사용합니다. 예를 들어,
@RequestMapping(value = "/resource", method = RequestMethod.GET)와 같이 사용할 수 있습니다.
headers: 특정 HTTP 요청 헤더 조건을 만족하는 경우에만 메서드를 실행합니다.
params: 특정 요청 파라미터 조건을 만족하는 경우에만 메서드를 실행합니다.
consumes: 클라이언트가 전송한 컨텐츠 타입을 기반으로 메서드를 실행합니다. 예를 들어, JSON 데이터를 받는 경우
consumes = "application/json"으로 설정할 수 있습니다.
produces: 서버가 생성하는 응답 컨텐츠 타입을 지정합니다. 클라이언트에게 반환되는 데이터 형식을 제어할 수 있습니다.
1
2
@RequestMapping("/products")
public class ProductController
@GetMapping
HTTP GET 메서드에 대한 매핑을 지정합니다.
@RequestMapping(method = RequestMethod.GET)을 대신하여 사용할 수 있습니다.
주로 데이터를 검색하고 가져오는 데 사용됩니다.
1
2
3
4
5
6
7
@GetMapping ("{complain-id}")
public ResponseEntity<ComplainResponseDto> getComplain(@PathVariable("complain-id") @Positive long complainId) {
Complain response = complainService.findComplain(complainId);
ComplainResponseDto complainResponse = mapper.complainToComplainResponseDto(response);
return new ResponseEntity<>(complainResponse, HttpStatus.OK);
}
@PostMapping
HTTP POST 메서드에 대한 매핑을 지정합니다.
@RequestMapping(method = RequestMethod.POST)을 대신하여 사용할 수 있습니다.
주로 데이터를 생성 또는 업데이트하는 데 사용됩니다.
1
2
3
4
5
6
@PostMapping ("/new")
public ResponseEntity postComplain(@RequestBody @Valid ComplainPostDto complainPostDto) {
Complain response = complainService.createComplain(complainPostDto);
return new ResponseEntity<> (new SingleResponseDto<>(mapper.complainToComplainResponseDto(response)),HttpStatus.OK);
}
@PatchMapping
HTTP PATCH 메서드에 대한 매핑을 지정합니다.
@RequestMapping(method = RequestMethod.PACTH)을 대신하여 사용할 수 있습니다.
주로 데이터를 부분적인 업데이트 하는데 사용됩니다.
1
2
3
4
5
6
7
8
9
10
11
12
@PatchMapping("/{complain-id}")
public ResponseEntity patchComplain(@PathVariable("complain-id") @Positive long complainId,
@Valid @RequestBody ComplainPatchDto complainPatchDto){
complainPatchDto.setComplainId(complainId);
Complain complain = mapper.complainPatchDtoToComplain(complainPatchDto);
Complain response = complainService.updateComplain(complain);
return new ResponseEntity<>(mapper.complainToComplainResponseDto(response), HttpStatus.OK);
}
@DeleteMapping
HTTP DELETE 메서드에 대한 매핑을 지정합니다.
@RequestMapping(method = RequestMethod.DELETE)을 대신하여 사용할 수 있습니다.
주로 데이터를 삭제하는 데 사용됩니다
1
2
3
4
5
6
7
@DeleteMapping("/{complain-id}")//문의사항 삭제
public ResponseEntity deleteComplain(@PathVariable("complain-id") @Positive long complainId){
complainService.deleteComplain(complainId);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}