List를 사용해서 User 테이블에 있는 data 전체 불러오기.
// http://localhost:8080/dummy/users
// 모든 user 내용 불러오기
@GetMapping("/dummy/users")
public List<User> list() {
return userRepository.findAll();
}
// http://localhost:8080/dummy/user?page=0
// http://localhost:8080/dummy/user?page=1
@GetMapping("dummy/user")
public Page<User> pageList(@PageableDefault(size=2, sort="id", direction= Sort.Direction.DESC) Pageable pageable ) {
Page<User> users=userRepository.findAll(pageable);
return users;
}
위 코드 정리 ver
@GetMapping("dummy/user2")
public List<User> pageList2(@PageableDefault(size=2, sort="id", direction= Sort.Direction.DESC) Pageable pageable ) {
Page<User> pagingUser=userRepository.findAll(pageable);
if (pagingUser.isLast()) {
// 분기처리 가능
}
List<User> users2=pagingUser.getContent();
return users2;
}
과거에 공공 api를 활용하여 불러온 data paging한 방법
//Get 전체 정책 데이터 공공데이터 api 이용
@ResponseBody
@GetMapping("/api/{page}/{perPage}")
public String callApi(@PathVariable("page")int page, @PathVariable("perPage")int perPage) throws IOException {
StringBuilder result = new StringBuilder();
String urlStr = "https://api.odcloud.kr/api/gov24/v1/serviceDetail?" +
"page="+page+"&"+
"perPage="+perPage+"&"+
"serviceKey=4qdywegfVpdcSvD0uF1zrGAJ4VMzz9V%2Fybv%2FD6U0NsNY9OpKYNKE8IOqfgyj912iwCHDcmYoFlxNOlND07KsZA%3D%3D";
URL url = new URL(urlStr);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
BufferedReader br;
br = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(), "UTF-8"));
String returnLine;
while ((returnLine = br.readLine()) != null) {
result.append(returnLine + "\n\r");
}
urlConnection.disconnect();
return result.toString();
}