나는 에 대한 래퍼 인 node-github이라는 NodeJS 모듈을 사용하여 다음과 같이 특정 사용자에 대한 통계를 얻습니다. 그들의 추종자 :링크 헤더 (JavaScript/NodeJS 사용)를 사용하는 API에서 모든 페이지를 가져 오는 올바른 접근 방식
var getFollowers = function(user, callback) {
github.user.getFollowers(user, function(err, res) {
console.log("getFollowers", res.length);
callback(err, res);
});
};
...
getFollwers({user: mike}, function(err, followers) {
if(err) {
console.log(err);
}
else {
console.log(followers);
}
});
분명히, Github에서 제한합니다 (per_page
매개 변수를 통해) (100)의 최대 결과를 호출하고 결과를 '다음 페이지'가 존재 알려 the Link header를 사용합니다.
내가 사용하고있는 모듈은 링크 헤더를 처리하는 몇 가지 쉬운 방법을 제공하므로 구문 분석 할 필요가 없습니다. 기본적으로, 당신은 호출 할 수 있습니다 github.hasNextPage(res)
또는 github.getNextPage(res)
(res
는 원래 github.user.getFollowers()
를 호출하여받은 응답 임) 내가 무엇을 찾고 있어요 것은 모든 페이지 구성 내 기능은 모든 결과를 반환 할 필요에 대한 올바른 접근 방식/패러다임이다 . 재귀 함수를 조금 썼는데, 작동하지만 더 나은 접근 방법이 될 수 있다고 생각하지만 도움이되지 않습니다.
이 답변은 Github의 표준이 아닌 다른 모든 링크 헤더 호출을 처리하는 좋은 접근 방법이 될 수 있습니다.
감사합니다.
당신은 추종자를 방출하는 사용자 정의 읽을 스트림을 생성하는 생각 해 봤나? – AndyD
@AndyD 정교하게 주시겠습니까? –