결국 또 막막해서 포기함...
가장 막막했던건 내가 뭘 모르는지도 모른다는거였다.
우선 클래스들을 만들었다.
엔티티, 컨트롤러, 리포지토리,서비스 클래스를 만들었다.
근데 작성하는 방법을 까먹었다.
엔티티는 대충
@Id, @GeneratedValue, @Column쓰는것 까지는 기억이 났다. 물론 공식문서도 참고했다.
https://spring.io/guides/gs/uploading-files
자세하게 참고한건 아니고 각 계층별 형식같은것만 대충 참고했다.
리포지토리도 그냥 CrudRepository..대충 따라쳤다.
@Entity
public class Article {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name ="id")
private Long id;
@Column(name = "title")
private String title;
@Column(name = "content")
private String content;
protected Article(){ }
@Builder
public Article(String title, String content){
this.title = title;
this.content= content;
}
}
여기서 왜
protected Article(){ }
@Builder
public Article(String title, String content){
this.title = title;
this.content= content;
}
이런 코드를 어떤생각으로 도출해내는건지 모르겠다.
그리고 Dto를 왜 만들었고 어떻게 쓰는지에 대한 이해가 더 필요할 것 같다.
@RequiredArgsConstructor
@Controller
public class BlogApiController {
private final BlogService blogService;
@PostMapping("/api/articles")
public ResponseEntity<Article> add(@RequestBody AddArticleRequest request){
Article savedArticle = blogService.save(request);
return ResponseEntity.status(HttpStatus.CREATED)
.body(savedArticle);
}
}
이 코드를 어떻게 생각해내야했을지 더 생각해봐야겠다.
다음포스트에서는 내가 모르는것들에 대한 정리를 해보겠다.