REST APIを繰り返す方法

実現したいこととしては

1.REST APIであるスペースにあるアプリ一覧を取得

2.1.で取得した情報からアプリIDを抽出

3.2.で抽出したアプリIDを用いて各アプリの設定をREST APIで変更

という流れになります。

1および2については実現できているのですが、3の処理でてこずっています。

具体的にはスペースにあるアプリの数は固定ではないため、for文でREST APIを回す方法を

考えているのですがここの手法が分からないためお教えいただけると幸いです。

for文でREST APIの配列を作って、kintone.Promise.allでいけないでしょうか。

https://developer.cybozu.io/hc/ja/articles/215029846-kintone-Promise%E3%81%A8%E3%81%AF#gist-11

コメントありがとうございます。

>for文でREST APIの配列を作って

ここの具体的なイメージがわかっていないのですがご教授いただけませんでしょうか。

具体的に書くと、以下のようなイメージでしょうか。

 

        kintone.api(kintone.api.url('/k/v1/space', true), 'GET', { id: スペースID }).then(function (resp) {
            // 取得したスペース内のアプリ情報をループして、フィールドの一覧を取得するAPIを纏めて呼び出す
            return kintone.Promise.all(resp.attachedApps.map(function (attachedApp) {
                return kintone.api(kintone.api.url('/k/v1/app/form/fields', true), 'GET', { app: attachedApp.appId });
            }));

            // 以下、上と同じ処理をfor文で書いた場合のイメージ。
            // let getFunctions = [];
            // for (let i = 0; i < resp.attachedApps.length; i++){
            //     getFunctions.push(kintone.api(kintone.api.url('/k/v1/app/form/fields', true), 'GET', { app: resp.attachedApps[i].appId }));
            // }
            // return kintone.Promise.all(getFunctions);
        }).then(function (resp) {
            resp.forEach(function (fields) {
                console.log(fields);
                console.log('------------------------');
            });
        }).catch(function (error) {
            console.log(error);
        });

PV様

ありがとうございました。いただきました内容でコード記述したところ無事実行できました。

大変助かりました。