Create, Read

김나영·2023년 6월 27일
0

Spring

목록 보기
10/38

Create

@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;
    }

Read

    @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가 memo 하나인데 그 메모가 하나가아니라 여러 개일수도 있기 때문에 List 사용
  • 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();

0개의 댓글