1. 데이터베이스에서 테이블 구조와 매핑될 엔티티 구성
- src/main/java/domain → Article.java
- @Entity 애너테이션 사용
2. 레포지터리 생성
- src/main/java/repository → BlogRepository.java
- 인터페이스로, JpaRepository 상속받아 JPA에서 제공하는 메서드 이용
- 상속 받을 때, 인수로 < Entity 이름, 기본키 타입 > 지정해야 함
3. 글 작성 API 구현
1) 컨트롤러로부터 서비스 계층에서 요청받을 객체 생성
- src/main/java/dto → AddArticleRequest.java
2) 서비스
- src/main/java/service → BlogService.java
- save() 메서드 추가
• 매개변수 : AddArticleRequest
• 반환값 : Article
3) 컨트롤러
- src/main/java/controller → BlogApiController.java
- '/api/articles' POST 요청 : BlogService의 save() 메서드 호출 결과, Article을 반환하는 AddArticle() 메서드 추가
• 매개변수 : AddArticleRequest
• 반환값 : ResponseEntity<Article>
4. 글 전체 목록 조회 API
1) 서비스
- findAll() 메서드 추가
• 매개변수 없음
• 반환값 : List<Article>
2) 컨트롤러
- 응답을 위한 DTO 객체 생성 : src/main/java/dto → ArticleResponse.java
- 'api/articles' GET 요청 : 전체 글 조회한 뒤 반환하는 findAllArticles() 메서드 추가
• 매개변수 없음
• 반환타입 : ResponsEntity<List<ArticleResponse>>
5. 한 개의 글 조회 API
1) 서비스
- findById() 메서드 추가
• 매개변수 : long id
• 반환값 : Article
2) 컨트롤러
-'/api/articles/{id}' GET 요청 : findArticle() 메서드 추가
• 매개변수 : @PathVariable long id
• 반환값 : ResponseEntity<ArticleResponse>
6. 한 개의 글 삭제 API
1) 서비스
- delete() 추가
• 매개변수 : long id
• 반환값 없음
2) 컨트롤러
- '/api/articles/{id}' DELETE 요청 : deleteArticle() 메서드 추가
• 매개변수 : @PathVariable long id
• 반환값 : ResponseEntity<Void>
7. 글 수정 API
1) 엔티티에 update() 메서드 추가
- Article.java : @Getter만 추가 → 읽기 전용
⇒ CRUD에서 Update 기능 불가능
2) 블로그 글 수정 요청을 받을 DTO 객체 추가
- /src/main/java/dto → UpdateArticleRequest.java
3) 서비스
- update()
• 매개변수 : long id, UpdateArticleRequest
• 반환값 : Article
4) 컨트롤러
-'/api/articles/{id}' PUT 요청 → updateArticle() 메서드 추가
• 매개변수 : @PathVariable long id, UpdateArticleRequest
• 반환값 : ResponseEntity<Article>
'백엔드 > Spring Boot' 카테고리의 다른 글
모던 웹 애플리케이션 개발 - 3. JPA를 이용한 데이터베이스 생성 및 접근 (1) (0) | 2023.08.21 |
---|---|
모던 웹 애플리케이션 개발 - 1. 환경과 툴 설정 (0) | 2023.08.21 |
Maven Project를 Gradle Project로 변경하기 (0) | 2023.08.11 |
7. 블로그 화면 구성하기 (5) - 수정 / 생성 기능 추가 (0) | 2023.08.10 |
7. 블로그 화면 구성하기 (4) - 삭제 기능 추가 (0) | 2023.08.10 |