2017-01-22 19 views
0

私はGitHub APIからデータを取得するウェブサイトを構築しており、1回の訪問につき約100回のリクエストを行う必要があります。訪問者の認証を求めずに60のリクエスト制限を超えることができますか?公開ウェブサイトのGitHub API認証

私はアクセストークンをハードコーディングすると考えましたが、もっと安全な解決策がありますか?

(ウェブサイトはGitHubのページでホストされている)

+0

は、要求を行うには、独自のAPIキーを使用してください。 APIキーを設定ファイルに入れて、設定ファイルがファイルのアクセス権によって十分に保護されていることを確認します。 APIキーは、必要なアクセス許可のみに制限します。 APIキーについての素晴らしいことは、彼らはジャンクされる可能性があります。あるいは、あなたがやりたいことを投稿してください。おそらく、リクエストの数を減らすことができます。 – Schwern

+0

申し訳ありませんが、角度を使ってリクエストを行っているとは言いませんでした。つまり、トークンはとにかく公開されます。あなたが見てみたいのなら、ここにレポがあります:https://github.com/fabiosn/fabiosn.github.io –

+0

Github APIを使って何をしているのかをもっと詳しく記述してください。コードは役に立ちますが、私はすべてのコードを読んでそれを理解するつもりはありません。 – Schwern

答えて

1

基本的に、私は私のプロフィールからデータをフェッチし、ポートフォリオの上にそれを使用しています。私は私のリポジトリのリストを取得し、そのリストをループしてさらにデータを取得します。

通常は、あなたの本当のAPI呼び出しを減らすために、クエリキャッシュとConditional Requestsを使用することによってこれを解決するだろうが、それはクライアント側のJavaScriptに困難になるだろう。あなたの情報はかなり静的なものなので、毎回のリクエストで生きる必要はありません。数分かかる場合でも、データをキャッシュする方法はいくつかあります。

あなたはおそらくrails-apiのようなものを使って、クエリとキャッシングを行う独自の小さなプロキシサーバーを作成できます。その後、あなたのJavascriptにそのサーバの要求をしてもらいます。しかし、サーバーを稼働させたくないかもしれません。

また、リクエストを作成して、結果をGithub Pagesのキャッシュファイルに格納することもできます。これには、クエリ、その内容、および必要なキャッシュ情報が含まれます。 Javascriptはそれを条件付き要求の作成に使用します。あなたは舞台裏でそれを定期的に更新し、Github Pagesにプッシュするプロセスを持つことができます。この結果、キャッシング付きのライブデータが得られます。例えば

...

{ 
    "https://stackoverflow.com/users/fabiosn/repos": { 
     "ETag": "644b5b0155e6404a9cc4bd9d8b1ae730", 
     "Last-Modified": "Thu, 05 Jul 2012 15:31:30 GMT", 
     "Content": [ 
        { 
         "id": 79252528, 
         ... 
        } 
        ] 
    }, 
    ... 
} 
+0

ありがとうございました!あなたのアドバイスに続いて、私はこの解決策を提供することができました:https://github.com/fabiosn/fabiosn.github.io/commit/1dbaf00241917b6c7b2c05a2e87cfacae67b8e94 –

関連する問題