이번에는 여러개의 API 조회하는 방법입니다~
페이지 리스트 게시판 리스트 처럼 가져오는 방법을 이야기합니다
컨트롤러를 만들고 Spring JPA를 활용하여 findAll의 메서드를 활용하여 다건조회를 진행했습니다.
또한 다건 테스트 같은 경우 리스트로 [{},{}]형식으로 파싱되어 나오는데 테스트 방법으로는
jsonpath를 활용하여 테스트에서
mockMvc.perform(MockMvcRequestBuilders.get("/posts")
.contentType(MediaType.APPLICATION_JSON)
)
.andExpect(status().isOk())
.andExpect(jsonPath("$.length()", Matchers.is(2)))
.andExpect(jsonPath("$[0].id").value(board1.getId()))
.andExpect(jsonPath("$[0].title").value(board1.getTitle()))
.andExpect(jsonPath("$[0].content").value(board1.getContent()))
.andDo(print());
항상 값을 가져와 DTO에 값을 저장하는게 국룰입니다.!! 엔티티를 반환하면 털릴수도 있기때문에 항상 매핑을 해줘야합니다.
근데 다른 방법을 배웠는데
public List<BoardResponse> getList() {
return boardRepository.findAll().stream()
.map(BoardResponse::new)
.collect(Collectors.toList());
}
public BoardResponse(Board board){
this.id = board.getId();
this.title = board.getTitle();
this.content = board.getContent();
}