2013-01-05 5 views
6

私はgithub apiを小さなWebアプリケーションに使用していますが、ある時点でthe paginationにはlink headerを取得する必要があります。Github APIはajaxでリンクヘッダを取得します

最終的な目標は、リポジトリごとのコミットの合計数を取得することですが、私はpython scriptことが判明し、JavaScriptにそれを適応させることを試みました。

getData = $.getJSON('https://api.github.com/repos/'+user+'/'+repo+'/commits?callback=?', function (commits){ 

    console.log(getData.getResponseHeader('link')) 
    // will return null 

    console.log(getData.getAllResponseHeaders('link')) 
    // will return an empty string 

    console.log(commits) 
    // will successfuly return my json 
}); 

userrepo私はJavaScriptを使用できるように、それはGithubのページのためだ、それぞれのユーザー名と彼のレポ名

です。

答えて

5

JSONPコールバックを使用するためのGitHub APIのドキュメントを参照してください。http://developer.github.com/v3/#json-p-callbacks

あなたはAPIを呼び出すためにJSONPを使用している場合は、基本的に、あなたはLinkヘッダを取得することはできませんが、あなたは代わりに同じ情報を取得しますレスポンスJSON文書の(体すなわち)。機能(PlainObjectデータ、文字列textStatus、jqXHR jqXHR):以下は、APIドキュメントからの例があり、metaオブジェクトにLinkプロパティに気づく

$ curl https://api.github.com?callback=foo 

foo({ 
    "meta": { 
    "status": 200, 
    "X-RateLimit-Limit": "5000", 
    "X-RateLimit-Remaining": "4966", 
    "Link": [ // pagination headers and other links 
     ["https://api.github.com?page=2", {"rel": "next"}] 
    ] 
    }, 
    "data": { 
    // the data 
    } 
}) 
+0

最適です、ありがとう –

0

あなたはgetJSONメソッドに渡す関数のシグネチャは タイプですあなたが代わりにデータオブジェクトのjqXHRオブジェクトを使用する必要がありますリンクヘッダにアクセスするには

getData = $.getJSON(
    'https://api.github.com/repos/'+user+'/'+repo+'/commits?callback=?', 
    function (data, textStatus, jqXHR){ 

     console.log(jqXHR.getResponseHeader('Link')) 
     // will return the Header Link 

     console.log(commits) 
     // will successfuly return my json 
    }); 
関連する問題