도서/프로그래밍
데이터베이스 액세스 - 처음부터 제대로 배우는 스프링 부트 [03]
POWER_ESFJ
2024. 1. 31. 18:48
package com.thehecklers.sburrestdemo.controller;
import com.thehecklers.sburrestdemo.entity.Coffee;
import com.thehecklers.sburrestdemo.repository.CoffeeRepository;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.Optional;
@RestController
@RequestMapping("/coffees")
public class RestApiDemoController {
private final CoffeeRepository coffeeRepository;
public RestApiDemoController(CoffeeRepository coffeeRepository) {
this.coffeeRepository = coffeeRepository;
}
@GetMapping
Iterable<Coffee> getCoffees() {
return coffeeRepository.findAll();
}
@GetMapping("/{id}")
Optional<Coffee> getCoffeeById(@PathVariable String id) {
return coffeeRepository.findById(id);
}
@PostMapping
Coffee postCoffee(@RequestBody Coffee coffee) {
return coffeeRepository.save(coffee);
}
@PutMapping("/{id}")
ResponseEntity<Coffee> putCoffee(@PathVariable String id,
@RequestBody Coffee coffee) {
return coffeeRepository.existsById(id) ?
new ResponseEntity<>(coffee, HttpStatus.OK) :
new ResponseEntity<>(postCoffee(coffee), HttpStatus.CREATED);
}
@DeleteMapping("/{id}")
void deleteCoffee(@PathVariable String id) {
coffeeRepository.deleteById(id);
}
}