質問
REST APIのレスポンスに含まれる 「nextLink」 フィールドを使って、複数ページにわたるデータを自動で全件取得するにはどうすればよいですか?
回答
「skiptoken」 を変数に保持しループ処理を行うことで、ページ送りを自動実行できます。
以下、サポート側での実装イメージの一例です。j5 の APIリファレンス及び、お客様側のAPI要件と併せてご確認ください。未検証であり、動作を保証するものではないことを予めご了承ください。
■実装例
1. 「skiptoken」 を保持するスクリプト変数を作成する。
2. 初回は 「skiptoken」 を指定せずREST処理を実施する。
3. APIレスポンスの 「nextLink」 フィールドから 「skiptoken」 の値を取り出し、変数に保持する。取り出しには以下のマッピングロジックを使用する。
[文字列] → [関数] → [指定文字より前] ロジック

[文字列] → [関数] → [指定文字より後] ロジック

マッピング内のイメージ

4. 変数に 「skiptoken」 が保持されている(=次のデータが存在する)間はループ処理を継続し、次のページのリクエストを自動実行する。
5. 「skiptoken」 が空になった時点でループを終了する。
補足
「nextLink」 の値をそのままREST処理のパス欄に貼り付けてもうまくいかない原因として、RESTコネクターによるURLエンコード処理が働いたためと考えられます。詳細は以下のFAQを参照してください。
- RESTコネクターの接続先に指定したURLのパスが意図と異なった形に変換されてしまう
- j5 Framework IndustraForm APIリファレンス(外部サイト)
コメント
0件のコメント
記事コメントは受け付けていません。