https://spring.io/guides/tutorials/rest/
BoardApiController
import com.godcoder.myhome.model.Board; import com.godcoder.myhome.repository.BoardRepository; import org.springframework.web.bind.annotation.*; import org.thymeleaf.util.StringUtils; import javax.persistence.EntityExistsException; import java.util.List; @RestController @RequestMapping("/api") class BoardApiController { private final BoardRepository repository; BoardApiController(BoardRepository repository) { this.repository = repository; } // Aggregate root // tag::get-aggregate-root[] @GetMapping("/boards") List<Board> all(@RequestParam(required = false, defaultValue = "") String title , @RequestParam(required = false, defaultValue = "") String content) { if(StringUtils.isEmpty(title) && StringUtils.isEmpty(content)){ return repository.findAll(); }else{ return repository.findByTitleOrContent(title, content); } } // end::get-aggregate-root[] @PostMapping("/boards") Board newBoard(@RequestBody Board newBoard) { return repository.save(newBoard); } @GetMapping("/boards/{id}") Board one(@PathVariable Long id) { return repository.findById(id).orElseThrow(EntityExistsException::new); } @PutMapping("/boards/{id}") Board replaceBoard(@RequestBody Board newBoard, @PathVariable Long id) { return repository.findById(id) .map(employee -> { employee.setTitle(newBoard.getTitle()); employee.setContent(newBoard.getContent()); return repository.save(employee); }) .orElseGet(() -> { newBoard.setId(id); return repository.save(newBoard); }); } @DeleteMapping("/boards/{id}") void deleteBoard(@PathVariable Long id) { repository.deleteById(id); } }
https://github.com/braverokmc79/spring-boot-jpa-web-release
댓글 ( 4)
댓글 남기기