@RestController
@RequestMapping("/api")
public class MemoController {
@PostMapping("/memos")
public MemoResponseDto createMemo(@RequestBody MemoRequestDto requestDto) {
// RequestDto -> Entity
Memo memo = new Memo(requestDto);
Client에 데이터를 반환할 때 사용할 MemoResponseDto 클래스 생성
Memo memo = new Memo(); : 생성자 만들기
Memo memo = new Memo(requestDto); : 클라이언트에서 보내준 데이터 requestDto를 넣어줌
// Memo Max ID Check
Long maxId = memoList.size() > 0 ? Collections.max(memoList.keySet()) + 1 : 1;
memo.setId(maxId);
// DB 저장
memoList.put(memo.getId(), memo);
// Entity -> ResponseDto
MemoResponseDto memoResponseDto = new MemoResponseDto(memo);
return memoResponseDto;
}
@GetMapping("/memos")
public List<MemoResponseDto> getMemos() {
// Map To List
List<MemoResponseDto> responseList = memoList.values().stream()
.map(MemoResponseDto::new).toList();
return responseList;
}
}
DB 역할을 하는 memoList를 조회하여 List<MemoResponseDto>
로 변환한 후 반환
MemoResponseDto::new 사용 시 MemoResponseDto(Memo memo)가 호출됨
@Getter
public class MemoResponseDto {
private Long id;
private String username;
private String contents;
}
public MemoResponseDto(Memo memo) {
this.id = memo.getId();
this.username = memo.getUsername():
this.contents = memo.getContents();