POST /api/boards
Content-Type: application/json
{
"authorId": 1,
"title": "첫 λ²μ§Έ κΈ",
"content": "μλ
νμΈμ!"
}
BoardController@PostMapping
public ResponseEntity<Long> create(@Valid @RequestBody CreateBoardRequest req) {
Long id = createBoardUseCase.handle(req.getAuthorId(), req.getTitle(), req.getContent());
return ResponseEntity.ok(id);
}
π Controllerλ μΈλΆ μΈκ³(Web)μ λλ©μΈμ μ΄μ΄μ£Όλ μ λ ₯ μ΄λν°.
CreateBoardUseCase@Transactional
public Long handle(Long authorId, String title, String content) {
Board created = Board.create(authorId, title, content); // λλ©μΈ κ·μΉ μ€ν
return boardRepository.save(created).getId(); // μΆλ ₯ ν¬νΈ νΈμΆ
}
π CreateBoardUseCaseλ βκ²μκΈ μμ±β μ μ€μΌμ΄μ€λ₯Ό μ μν Input Port.
Boardpublic static Board create(Long authorId, String title, String content) {
LocalDateTime now = LocalDateTime.now();
return new Board(null, authorId, title, content, now, null);
}