AddArticleRequest.java
@NoArgsConstructor
@AllArgsConstructor
@Getter
public class AddArticleRequest {
private String title;
private String content;
//DTO를 엔티티로 만들어주는 메서드
public Article toEntity(){
return Article.builder()
.title(title)
.content(content)
.build();
}
}
@NoRepositoryBean
public interface JpaRepository<T, ID> extends PagingAndSortingRepository<T, ID>, QueryByExampleExecutor<T> {
@Override
List<T> findAll();
// ID 값을 리스트 형식으로 받아 레코드 조회
@Override
List<T> findAllById(Iterable<ID> ids);
@Override
void save(T entity);
..
}
@RequiredArgsConstructor
@RestController
public class BlogApiController {
private final BlogService blogService;
@PostMapping("/api/articles")
public ResponseEntity<Article> addArticle(@RequestBody AddArticleRequest request){
Article savedArticle = blogService.save(request);
return ResponseEntity.status(HttpStatus.CREATED)
}
public class BlogApiController {
private final BlogService blogService;
--생략--
@GetMapping("/api/articles")
public ResponseEntity<List<ArticleResponse>> findAllArticles() {
List<ArticleResponse> articles = blogService.findAll()
.stream()
.map(ArticleResponse::new)
.toList();
return ResponseEntity.ok()
.body(articles);
ArticleRespone
>로 미리 만들어 놓은 dto 형식으로 Body에 넣어 보내진다.