본문 바로가기
Spring/- [시리즈] 간단한 CRUD 구현하기

CRUD 구현 7 - Controller 구현

by 정구정구 2026. 5. 15.

Controller란?

“클라이언트의 HTTP 요청을 받아 처리하는 계층”

 

Controller의 역할

  • 요청 검증
  • 인증
  • 예외 처리 
  • 요청 유효성 검사
  • 응답

 

프로젝트 구현

@RestController
@RequiredArgsConstructor
@RequestMapping("/products")
public class ProductController {

    private final ProductService productService;

    @PostMapping
    public ProductResponse create(@RequestBody ProductRequest request) {
        return productService.create(request);
    }

    @GetMapping("/{id}")
    public ProductResponse findById(@PathVariable Long id) {
        return productService.findById(id);
    }

    @GetMapping
    public List<ProductResponse> findAll() {
        return productService.findAll();
    }

    @PutMapping("/{id}")
    public ProductResponse update(
            @PathVariable Long id,
            @RequestBody ProductRequest request
    ) {
        return productService.update(id, request);
    }

    @DeleteMapping("/{id}")
    public void delete(@PathVariable Long id) {
        productService.delete(id);
    }
}
@RestController
@RequiredArgsConstructor
@RequestMapping("/orders")
public class OrderController {

    private final OrderService orderService;

    @PostMapping
    public OrderResponse createOrder(
            @RequestBody OrderRequest request
    ) {
        return orderService.create(request);
    }

    @GetMapping("/{id}")
    public OrderResponse getOrder(
            @PathVariable Long id
    ) {
        return orderService.findById(id);
    }

    @GetMapping
    public List<OrderResponse> getOrders() {
        return orderService.findAll();
    }
}

 

코드 설명

@RestController

 

REST API Controller 선언

@RequestMapping("/orders")

공통 URL 지정

@RequestBody

JSON 요청 데이터를 객체로 변환

@ResponseBody

리턴 값을 JSON 형태로 변환

@PathVariable

URL 값 추출

@PostMapping

데이터 생성 요청 처리

@GetMapping

데이터 조회 요청 처리

@DeleteMapping("/{id}")

데이터 삭제 요청 처리

 

@PutMapping("/{id}")

데이터 수정 요청 처리