이번에는 여러개의 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();
    }