0. Controller
Controller는 클라이언트로부터 들어온 요청을 알맞은 Service로 연결하고 응답을 보내주는 역할을 한다.
다음은 Get, Post, Put, Delete 방식을 사용한 RestController이다.
package com.web.springtest00.product.controller;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.web.springtest00.data.dto.ChangedProductNameDto;
import com.web.springtest00.data.dto.ProductDto;
import com.web.springtest00.data.dto.ProductResponseDto;
import com.web.springtest00.product.service.ProductService;
@RestController
@RequestMapping("/product")
public class ProductController {
private final ProductService productService;
public ProductController(ProductService productService){
this.productService = productService;
}
@GetMapping("/{number}")
public ResponseEntity<ProductResponseDto> getProduct(@PathVariable Long number){
ProductResponseDto productResponseDto = productService.getProduct(number);
return ResponseEntity.status(HttpStatus.OK).body(productResponseDto);
}
@PostMapping()
public ResponseEntity<ProductResponseDto> createProduct(@RequestBody ProductDto productDto){
ProductResponseDto productResponseDto = productService.saveProduct(productDto);
return ResponseEntity.status(HttpStatus.OK).body(productResponseDto);
}
@PutMapping()
public ResponseEntity<ProductResponseDto> changeProductName(@RequestBody ChangedProductNameDto changeProductNameDto) throws Exception{
ProductResponseDto productResponseDto = productService.changeProductName(changeProductNameDto.getNumber(), changeProductNameDto.getName());
return ResponseEntity.status(HttpStatus.OK).body(productResponseDto);
}
@DeleteMapping()
public ResponseEntity<String> deleteProduct(Long number) throws Exception{
productService.deleteProduct(number);
return ResponseEntity.status(HttpStatus.OK).body("정상적으로 삭제되었습니다.");
}
}
'Java > Spring Boot' 카테고리의 다른 글
| [Spring Boot] Controller 예외처리 (0) | 2023.04.09 |
|---|---|
| [Spring Boot] 외부 properties 파일 불러오기 (0) | 2023.04.03 |
| [Spring Boot] Service 생성 (0) | 2023.03.28 |
| [Spring Boot] DAO 생성 (0) | 2023.03.28 |
| [Spring Boot] DTO 생성 (0) | 2023.03.28 |