본문 바로가기
TIL/내배캠 과제

23.06.15

by J1-H00N 2023. 6. 15.

스프링 부트로 로그인 기능이 없는 나만의 항해 블로그 백엔드 서버 만들기

 

과제 주의사항

  1. Entity를 그대로 반환하지 말고, DTO에 담아서 반환해주세요!
  2. 프론트엔드와 백엔드가 느슨하게 결합하는 환경이 ”최근에는” 더 일반적이라고 말씀드렸죠? 앞으로 남은 강의 예제와 실습에서는 html/css/js 즉 뷰도 같이 반환 하겠지만, 과제에는 여러분들이 서버 로직에 더 집중하실 수 있도록 JSON을 반환하는 API형태로 진행하려고 합니다.
  3. 눈으로 직접 확인 할 수 있었던 view와는 다르게, 여러분들이 과제를 진행하시려면 서버가 반환하는 결과값을 더 쉽게 확인 하실 수 있는 도구가 필요합니다. 바로 PostMan 입니다. 

요구사항

  1. 아래의 요구사항을 기반으로 Use Case 그려보기
  2. 전체 게시글 목록 조회 API
    • 제목, 작성자명, 작성 내용, 작성 날짜를 조회하기
    • 작성 날짜 기준 내림차순으로 정렬하기
  3. 게시글 작성 API
    • 제목, 작성자명, 비밀번호, 작성 내용을 저장하고
    • 저장된 게시글을 Client 로 반환하기
  4. 선택한 게시글 조회 API
    • 선택한 게시글의 제목, 작성자명, 작성 날짜, 작성 내용을 조회하기 (검색 기능이 아닙니다. 간단한 게시글 조회만 구현해주세요.)
  5. 선택한 게시글 수정 API
    • 수정을 요청할 때 수정할 데이터와 비밀번호를 같이 보내서 서버에서 비밀번호 일치 여부를 확인 한 후
    • 제목, 작성자명, 작성 내용을 수정하고 수정된 게시글을 Client 로 반환하기
  6. 선택한 게시글 삭제 API
    • 삭제를 요청할 때 비밀번호를 같이 보내서 서버에서 비밀번호 일치 여부를 확인 한 후
    • 선택한 게시글을 삭제하고 Client 로 성공했다는 표시 반환하기

 

일단 use case 작성

 

API 명세서 작성

mothod url request response
post /api/blog {
title : title,
username : username,
contents : contents,
password : password
}
{
id : id,
title : title,
username : username,
contents : contents,
password : password,
createdAt : createdAt,
modifiedAt : modifiedAt
}
get /api/blog - {
{
id : id,
title : title,
username : username,
contents : contents,
createdAt : createdAt,
modifiedAt : modifiedAt
}
.
.
.
}
get /api/blog/find {
id : id,
contents : contentsContained,
}
{
id : id,
title : title,
username : username,
contents : contents,
createdAt : createdAt,
modifiedAt : modifiedAt
}
put /api/blog {
id : id,
password : password,
title : title2,
username : username2,
contents : contentes2,
}
{
id : id,
title : title2,
username : username2,
contents : contentes2,
createdAt : createdAt,
modifiedAt : modifiedAt2
}
delete /api/blog {
id : id,
password : password
}
{
deleted : true
}

 

3 Layer Architecture까지 모두 생성하고 실행을 해보니 finished with non-zero exit value 1에러가 발생했다.

=> memo 프로젝트를 8080포트에서 이미 실행시키고 있어서 생긴 오류였다.

 

만들긴 했는데 postMan에서 테스트 방법을 잘 모르겠다.

테스트 결과 제대로 시행됐다.

 

    @DeleteMapping("/blog")
    public ResponseEntity<String> deleteBlog(@RequestParam String password, @RequestParam Long id) {
        blogService.deleteBlog(password, id);
        return ResponseEntity.status(HttpStatus.OK).body("삭제 성공");
    }

위와 같은 방법을 통해 Body에 메시지를 전달하는 방법도 알게 됐다.

'TIL > 내배캠 과제' 카테고리의 다른 글

23.06.23  (0) 2023.06.26
23.06  (0) 2023.06.22
23.06.09  (0) 2023.06.09
23.06.08  (0) 2023.06.08
23.06.07  (0) 2023.06.07