게시판 프로젝트(6)

Beomi·2023년 12월 11일

마지막 업데이트 기능과 Swagger 적용시켜보기

  • BoardService U 추가
public BoardEntity update(Long id, BoardRequest boardRequest){
        //board id에 해당하는 게시판 찾기
        BoardEntity boardUpdate = boardRepository.findById(id)
                .orElseThrow(() -> new RuntimeException("게시판을 못찾음: " + id));

        // 기존 게시판의 제목, 내용, 업데이트 시간, 상태 등을 업데이트
        boardUpdate.setTitle(boardRequest.getTitle());
        boardUpdate.setContent(boardRequest.getContent());
        boardUpdate.setBoardAt(LocalDateTime.now());
        boardUpdate.setStatus("UPDATE");

        return boardRepository.save(boardUpdate);
    }
  • 게시판의 아이디를 찾아 내용 수정 후 상태 업데이트로 변경
  • 등록 시간 변경

Controller

@PutMapping("/update/{id}")
    public Long update(@PathVariable Long id,
                       @RequestBody BoardRequest boardRequest){
        return boardService.update(id, boardRequest).getId();
    }
  • 댓글의 경우도 같은 방법으로 기능 구현을 함

Swagger

  • ui 형태로 보다 편리하게 api명세서 형태로 관리 및 테스트 확인을 할 수 있음.

  • 이전에 spring boot 2.x.x버전의 경우에는

implementation group: 'org.springdoc', name: 'springdoc-openapi-ui', version: '1.7.0'
이렇게 build.gradle에 사용했는데
- 3.x.x버전으로 업데이트가 되면서 에러가 생겼다.
  • 그래서 1시간동안 오류 해결하려고 찾아본 결과 밑에 처럼 build.gradle에 작성하면 오류가 나지 않는다..^^
mplementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2'

config설정

@OpenAPIDefinition(
        info = @Info(title = "Board-Service API 명세서",
                description = "사용자 게시판 서비스 API 명세서",
                version = "v1"))

@Configuration
public class SwaggerConfig {
}

  • swagger를 통해 마지막 기능인 업데이트 기능을 테스트 해봄.

  • 이번에 처음 사용 해봤지만 ui와 시간이 지나 api명세서로 관리할 때 좋을 것 같다.

0개의 댓글