問題タブ [link-header]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - リンクヘッダーを利用する API からすべてのページを取得するための正しいアプローチ (JavaScript/NodeJS を使用)
フォロワーなどの特定のユーザーに関する統計を取得するために、 Github APIのラッパーであるnode-githubという NodeJS モジュールを使用しています。
どうやら、Github は呼び出し結果を (per_page
パラメーターを介して)最大 100 に制限し、Link ヘッダーを利用して結果の「次のページ」が存在することを知らせます。
私が使用しているモジュールには、Link ヘッダーを処理するための簡単な方法がいくつか用意されているため、解析する必要はありません。基本的に、github.hasNextPage(res)
またはgithub.getNextPage(res)
(元の呼び出しres
から受け取った応答はどこにありますか)を呼び出すことができますgithub.user.getFollowers()
私が探しているのは、関数がすべてのページで構成されるすべての結果を返すようにするための正しいアプローチ/パラダイムです。再帰関数に少し手を出しましたが、うまくいきましたが、もっと良いアプローチがあるかもしれないと感じずにはいられません。
この回答は、標準が普及した場合、Github だけでなく、将来のすべての Link ヘッダー呼び出しを処理するための優れたアプローチとして役立つ可能性があります。
ありがとう!
javascript - リンクヘッダー用のNode.jsパーサー?
ここで定義されているように、ページネーションにリンクヘッダーを使用するGithubAPIを使用しています。
現在、文字列操作を使用して「次の」URLを抽出していますが、この目的に適したモジュールがあるかどうか疑問に思っていました(「npm検索」で何も見つかりませんでした)。
ありがとう!
java - @InjectLink の値の疑問符は %3F としてエンコードされます。これを防ぐ方法は?
Jersey のリンク ヘッダー機能を使用して、HTTP リンク ヘッダーを作成します。
@InjectLink(value="users/?orgId=12345&page=0",rel="first")
クエスチョン マーク以外は正常に動作します。これは %3F でエンコードされ、結果の URL は次のようになります。
http://localhost:8080/app/users/%3ForgId=12345&page=0
エンコーディングを防ぎ、疑問符の文字をそのままにしておく方法はありますか?
rest - ページネーション情報をRestControllerに渡す最良の方法は何ですか?
Google、Box、OneDrive などのほぼすべての主要なクラウド ストレージ サービス プロバイダーは、リクエスト パラメーターを使用してページネーション情報を Web サービスに伝達し、応答オブジェクトを更新して、次のページ情報をクライアントにさらに伝達します。
Range や Link などの標準の HTTP ヘッダーとカスタム ヘッダーがあるにもかかわらず、人々はクエリ パラメータを使用してそのような情報を伝える傾向があります。
このような標準ヘッダーを使用してクライアントとサーバー間でページ付け情報を伝達すると、応答属性を介してそのような情報を渡す必要がないため、標準応答が一意に保たれます。
では、REST API でページネーションを実装するためのベスト プラクティスは何でしょうか? HTTPヘッダーまたはクエリパラメーターを使用???