以前、レコード前取得を kintone REST API Client で楽にやってみたことがありましたが、
今回はボタンをクリックしたらConsoleに全アプリの情報を取得してくるようなアプリを作ります。
kintone REST API Client の getApps メソッド
limitというプロパティがあって、一度にとって来れるアプリ情報の件数は 100 までとのこと。
Name | Type | Description |
---|---|---|
limit | Number or String | The number of apps to retrieve. Must be between 1 and 100. If nothing is specified, it will default to 100. |
offset | Number or String | The number of retrievals that will be skipped. Must be between 0 and 2147483647. If nothing is specified, it will default to 0. |
offsetを使って100件ずつ再帰的に取ってくるのがよさそうです👀
JavaScript
以下2つを準備しておきましょう。
👀kintone UI Component
👀kintone REST API Client
// 一覧画面表示後
kintone.events.on(["app.record.index.show"], (event) => {
// kintone REST API Client の準備
const client = new KintoneRestAPIClient();
// メニュー下の余白にボタンを設置する
const sp = kintone.app.getHeaderSpaceElement();
const btn = new Kuc.Button({
text: "ボタン",
type: "submit",
});
sp?.appendChild(btn);
// ボタンをクリックしたらアプリ情報を再帰的に取得
btn.addEventListener("click", async () => {
const resp = await getAppsInfo();
console.log(resp);
});
/**
* 再帰的にアプリ情報を取ってくる
* @param ofs オフセット 初期値 0
* @param appsAry アプリ情報配列 初期値 []
*/
const getAppsInfo = async (ofs = 0, appsAry = []) => {
// アプリ情報を取りに行く。res.appsにアプリ情報の配列が格納される。
const res = await client.app.getApps({
offset: ofs,
});
// 前回までの配列に今とってきたアプリ情報の配列をくっつける
appsAry.push(...res.apps);
// 100件ぴったりだったら次もあるかも?ということで再帰的にアプリ情報を取りに行く
if (res.apps.length === 100) {
return getAppsInfo(ofs + 100, appsAry);
}
// 100件ぴったりじゃなかったらもう取り終わってるのでアプリ情報を返す
return appsAry;
};
return event;
});
結果
ボタンクリックで全件取ってこれました。
あとは取ってきたアプリ情報をゴニョゴニョとやってみると、なにかおもしろいアプリ管理用のアプリができるかも?