@GetMapping : 조회
@PostMapping : 추가(insert)
@PutMapping : 수정(update)
@DeleteMapping : 삭제
JPA를 통해 지정할 수 있는 규칙을 통해 검색 구현
BoardApiController
package com.javalab.myhome.controller;
import com.javalab.myhome.model.Board;
import com.javalab.myhome.repository.BoardRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.thymeleaf.util.StringUtils;
import java.util.List;
@RestController
@RequestMapping("/api")
class BoardAPIController {
@Autowired
private BoardRepository repository;
@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);
}
}
@PostMapping("/boards")
Board newBoard(@RequestBody Board newBoard) {
return repository.save(newBoard);
}
// Single item
@GetMapping("/boards/{id}")
Board one(@PathVariable Long id) {
return repository.findById(id).orElse(null);
}
@PutMapping("/boards/{id}")
Board replaceBoard(@RequestBody Board newBoard, @PathVariable Long id) {
return repository.findById(id)
.map(board -> {
board.setTitle(newBoard.getTitle());
board.setContent(newBoard.getContent());
return repository.save(board);
})
.orElseGet(() -> {
newBoard.setId(id);
return repository.save(newBoard);
});
}
@DeleteMapping("/boards/{id}")
void deleteBoard(@PathVariable Long id) {
repository.deleteById(id);
}
}
title, content에 해당하는 파라미터를 조회하면 일치하는 값을 검색해서 보여주고 값이 비어있으면 전체 데이터를 조회한다. 또 게시판 번호(id) 값을 파라미터로 조회하면 일치하는 번호의 행을 검색한다.
Restful 테스트를 위한 Postman
PostMapping 테스트 - JSON 형태로 입력 후 Send
PutMapping 테스트
DeleteMapping 테스트
테스트도 이렇게 프로그램으로 따로 돌려볼 수 있구나.. 신기
'온라인 강좌 > 유튜브 강의' 카테고리의 다른 글
Spring Boot 9. Spring Security를 이용한 로그인 처리 (0) | 2024.02.19 |
---|---|
Spring Boot 8. JPA를 이용한 페이지 처리 및 검색 (0) | 2024.02.19 |
Spring Boot 6. thymeleaf에서 form 전송하기 (0) | 2024.02.17 |
Spring Boot 5. jpa를 이용해 게시판 조회하기 (1) | 2024.02.17 |
도커 한방에 정리🐳 (모든 개발자들이 배워보고 싶어 하는 툴!) + 실습 (0) | 2023.06.26 |