페이지네이션, 정렬(sorting)

jb kim·2022년 3월 3일
0

REST API 블로그 앱

목록 보기
22/65

pageSize, pageNo 옵션 쿼리스트링

디폴트 값 적용하여 없어도 에러가 발생하지 않게

1. PageController

pageNo = 0 , pageSize = 10 디폴트

	@GetMapping
	public List<PostDto> getAllPosts(
				@RequestParam(value = "pageNo", defaultValue = "0", required = false) int pageNo , 
				@RequestParam(value = "pageSize", defaultValue = "10", required = false) int pageSize
	){
		return postService.getAllPosts(pageNo, pageSize);
	}

2. PostService

	//모든 포스트들을 가져오기 (페이지네이션)
	List<PostDto> getAllPosts(int pageNo, int pageSize);

3. PostServiceImple

	@Override
	public List<PostDto> getAllPosts(int pageNo, int pageSize) {
		//Pageable 객체 생성
		Pageable pageable = PageRequest.of(pageNo, pageSize);
		//pageable 을 입력해 원하는 페이지의 사이즈만큼 리스트 리턴
		Page<Post> posts = postRepository.findAll(pageable); 
		//페이지객체 안의 리스트만 가져오기
		List<Post> pagePosts = posts.getContent();
		//DTO로 변환하여 리턴
		return pagePosts.stream().map(post -> mapToDto(post)).collect(Collectors.toList());
	}

profile
픽서

0개의 댓글