🌿SPRING/🌱연습[SPRING]

[SPRING]입문주차 과제 비밀번호 확인 API 만들기

디카페인라떼 2022. 8. 17. 14:03

03주차 과제를 하면서 다른 부분은 강의부분을 보면서 그대로 작성하면서 이해했는데 새로운 기능이 더 있었다.

이론은 알아도.. 처음부터 해보려니 안되는 것,,, ^^ 고생하면서 했었어서 정리해두려고 한다.

 

API 명세서중 비밀번호 확인 부분이다. 비밀번호를 보내면 db에 저장된 값과 비교해보고 true / false로 응답이 오면 된다.

 

Controller에 api를 적어주려면 일단 비밀번호확인에대한 서비스 부분을 먼저 구현해야 한다.

 

서비스 부분에 만들려하니 매개변수로 비밀번호만 따로 dto를 따와서 입력받은 비밀번호와 비교해야 한다!!

그렇다면 비밀번호 DTO를 먼저 따줘야 한다! (순서는 솔직히 상관 없을 듯)

 

 

1. requestDto =>PostingPasswordDto먼저 만들어줌

  @Getter //dto는 무조건 getter만!
    public static class PostingPasswordDto{//static선언 필수!
        private String password;
    }

2.Service => comparePassword 메소드 만들어주기

   public boolean comparePassword ( Long id, PostingRequestDto.PostingPasswordDto postingPasswordDto) {
        Posting posting = postingRepository.findById(id).orElseThrow(
                () -> new NullPointerException("해당 아이디가 존재하지 않습니다."));
        return Objects.equals(posting.getPassword(), postingPasswordDto.getPassword());
    }

//리턴이 true/false 이므로 불린형 

//id와 db에 저장된 비밀번호dto를 매개변수로 받고

①id가 존재하지 않을 경우 예외처리먼저 해주고

②if(입력받은 비밀번호 == dto비밀번호) 이면 true 

인데 인텔리제이가 자동으로 코드를 간결하게 수정해줬다 =>  .equals 해줘야함!!

 

=>2022.08.17 - [JAVA] - [JAVA] objects.equals() 정리

 

3. Controller에서 @Mapping 써서 기능 만들어주기!

    @PostMapping("/api/post/{id}")
    public boolean comparePassword (@PathVariable Long id,@RequestBody PostingRequestDto.PostingPasswordDto postingPasswordDto) {
        return postingService.comparePassword(id, postingPasswordDto);
    }

매개변수에 @PathVariabe / @RequestBody 필수로 넣어주기... 

=> 기능 구현 완료!