[Spring Boot](게시판) | 수정 , 삭제 API 구현하기

acacia·2022년 10월 5일
0

SpringBoot

목록 보기
2/2
post-thumbnail

SpringBoot JPA로 게시판 구현하기

💻 개발환경

IntelliJ ultimate , SpringBoot , Java 1.8 , Gradle, jar , JPA , H2

👩‍🏫 개발목표

  • H2 (DB)를 연동해 생성, 조회, 저장, 삭제 등 RESP API를 개발한다.
  • 전송 데이터 타입은 json이다.
  • 호출 테스트는 브라우저나 ARC를 이용한다.

들어가기에 앞서

이번 포스팅은 미리 프로젝트를 생성하고, 다음 의존성을 추가한 상태에서 시작합니다.

  • Lombok
  • Spring Web
  • Spring Data Jpa
  • H2 Database
  • MySQL Driver

📝 수정 API (Update)

BoardController

@PutMapping

수정할 데이터가 가지고 있는 id값과 수정할 데이터를 받아서 파라미터로 전달
파라미터 값을 Service의 update메소드로 싣어 보냄
결과값을 responseDto에 담아 클라이언트 쪽에 반환

    @PutMapping("/api/board/{id}")
    public BoardResponseDto update(@PathVariable Long id, @RequestBody BoardRequestDto requestDto){
        return boardService.update(id, requestDto);
    }

BoardService

BoardRepository에서 해당 id값과 일치하는 데이터를 찾아 board에 저장

못찾을 경우 : 에러
찾는 경우 : Board Entityupdate메소드에 입력받은 데이터를 파라미터로 전달

새로 정의된 board를 responseDto로 생성

    @Transactional
    public BoardResponseDto update(Long id, BoardRequestDto requestDto){
        Board board = boardRepository.findById(id).orElseThrow(
                () -> new IllegalArgumentException("아이디값이 없습니다")
        );

        board.update(requestDto);
        return new BoardResponseDto(board);
} 

📝 삭제 API (Delete)

@DeleteMapping

삭제할 데이터가 가지고 있는 id값url로 받아서 전달
id 값을 Service의 delete메소드에 싣어 보냄
결과값을 responseDto에 담아 클라이언트 쪽에 반환

  @DeleteMapping("/api/board/{id}")
    public BoardResponseDto delete(@PathVariable Long id){
        return boardService.delete(id);
    }
}

BoardService

BoardRepository에서 해당 id값과 일치하는 데이터를 찾아 삭제

responseDto를 생성 해주어 리턴

    public BoardResponseDto delete(Long id){
        boardRepository.deleteById(id);
        return new BoardResponseDto();
    }
profile
게으른 개발자의 부지런한 개발일지

0개의 댓글