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)
댓글 남기기