@RestController 어노테이션은 스프링 MVC에서 RESTful API를 개발할 때 컨트롤러 클래스에 붙여주는 어노테이션입니다. 이 어노테이션은 해당 클래스의 모든 메소드가 HTTP 요청에 대한 응답으로 데이터를 직접 반환하도록 설정합니다. 즉, 뷰를 찾아서 렌더링하는 대신, JSON, XML 등의 형태로 데이터를 클라이언트에게 전달합니다.
@GetMapping("/users/{id}")
public User getUser(@PathVariable Long id) {
// id에 해당하는 사용자 정보 조회
}
@PostMapping("/users")
public User createUser(@RequestBody User user) {
// 새로운 사용자 정보 저장
}
@GetMapping("/search")
public List<Product> searchProducts(@RequestParam String keyword) {
// keyword를 이용하여 상품 검색
}
@DeleteMapping("/users/{id}")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void deleteUser(@PathVariable Long id) {
// 사용자 삭제
}
@RestController
@RequestMapping("/api/users")
public class UserController {
@GetMapping("/{id}")
public User getUser(@PathVariable Long id) {
// 사용자 정보 조회 로직
}
@PostMapping
public User createUser(@RequestBody User user) {
// 사용자 생성 로직
}
@PutMapping("/{id}")
public User updateUser(@PathVariable Long id, @RequestBody User user) {
// 사용자 정보 수정 로직
}
@DeleteMapping("/{id}")
@ResponseStatus(HttpStatus.NO_CONTENT)
public void deleteUser(@PathVariable Long id) {
// 사용자 삭제 로직
}
}
위 예시는 사용자 정보를 조회, 생성, 수정, 삭제하는 간단한 REST API를 구현한 것입니다. 각 메소드에 해당하는 어노테이션을 통해 HTTP 요청 메서드, URL 매핑, 요청/응답 데이터 처리 등을 설정합니다.
핵심: @RestController는 RESTful API 개발을 위한 핵심 어노테이션이며, @RequestMapping, @RequestBody 등의 어노테이션을 조합하여 다양한 API를 구현할 수 있습니다.
스프링부트와 MyBatis를 이용한 CRUD 프로젝트 (0) | 2025.01.17 |
---|---|
API, JPA, MyBatis: 언제 어떤 것을 사용해야 할까요? (2) | 2025.01.17 |
JSON 데이터 형식과 Jackson 라이브러리 (0) | 2025.01.17 |
스프링에서 index.html 대신 .do로 요청하는 방법 (1) | 2025.01.16 |
API 구조 설계 수정 제안 (0) | 2025.01.16 |