フォロワーなどの特定のユーザーに関する統計を取得するために、 Github APIのラッパーであるnode-githubという NodeJS モジュールを使用しています。
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 に制限し、Link ヘッダーを利用して結果の「次のページ」が存在することを知らせます。
私が使用しているモジュールには、Link ヘッダーを処理するための簡単な方法がいくつか用意されているため、解析する必要はありません。基本的に、github.hasNextPage(res)
またはgithub.getNextPage(res)
(元の呼び出しres
から受け取った応答はどこにありますか)を呼び出すことができますgithub.user.getFollowers()
私が探しているのは、関数がすべてのページで構成されるすべての結果を返すようにするための正しいアプローチ/パラダイムです。再帰関数に少し手を出しましたが、うまくいきましたが、もっと良いアプローチがあるかもしれないと感じずにはいられません。
この回答は、標準が普及した場合、Github だけでなく、将来のすべての Link ヘッダー呼び出しを処理するための優れたアプローチとして役立つ可能性があります。
ありがとう!