(非推奨)kintone Utility Library for JavaScript

目次

caution
警告

このツールは、現在推奨されていません。
新しく公開されている kintone JavaScript Client (@kintone/rest-api-client) を利用してください。

はじめに

今回は、2016 年 12 月に(ひそかに)リリースされた、「kintone Utility Library for JavaScript」について紹介します。

「kintone Utility Library for JavaScript」とは、REST API を使う上で、生産性を向上するために有志により開発されたライブラリです。
たとえば、レコードの一括取得/更新/削除など、毎回記述するには面倒な処理を、よりシンプルに記述できます。

それでは、その使い方を説明します。

kintone Utility Library for JavaScript のダウンロード

GitHub (External link) の「Assets」から「kintoneUtility.min.js」をダウンロードし、カスタマイズの適用画面で設定してください。

本サンプルプログラムは MIT license にて提供しています。

kintone Utility Library for JavaScript の構造

kintoneUtility オブジェクトには「rest」のプロパティがあり、関数を持っています。
「rest」で提供される関数の一覧は rest_doc.md (External link) に記載されています。

  • kintoneUtility.rest.getRecord
  • kintoneUtility.rest.getRecords
  • kintoneUtility.rest.getAllRecordsByQuery
  • kintoneUtility.rest.postRecord
  • kintoneUtility.rest.postRecords
  • kintoneUtility.rest.postAllRecords
  • kintoneUtility.rest.putRecord
  • kintoneUtility.rest.putRecords
  • kintoneUtility.rest.putAllRecords
  • kintoneUtility.rest.deleteRecords
  • kintoneUtility.rest.deleteAllRecords
  • kintoneUtility.rest.deleteAllRecordsByQuery
  • kintoneUtility.rest.upsertRecord
  • kintoneUtility.rest.upsertRecords
  • kintoneUtility.rest.downloadFile(v0.2.1 で追加)
  • kintoneUtility.rest.uploadFile(v0.2.1 で追加)
  • kintoneUtility.rest.setUserAuth(v0.2.1 で追加)
  • kintoneUtility.rest.setApiTokenAuth(v0.2.1 で追加)
  • kintoneUtility.rest.setDomain(v0.2.1 で追加)
  • kintoneUtility.rest.setBasicAuth(v0.2.1 で追加)
  • kintoneUtility.rest.setGuestSpaceId(v0.2.1 で追加)
  • kintoneUtility.rest.clearUserAuth(v0.2.1 で追加)
  • kintoneUtility.rest.clearApiTokenAuth(v0.2.1 で追加)
  • kintoneUtility.rest.clearDomain(v0.2.1 で追加)
  • kintoneUtility.rest.clearBasicAuth(v0.2.1 で追加)
  • kintoneUtility.rest.clearGuestSpaceId(v0.2.1 で追加)
  • kintoneUtility.rest.getFormFields(v0.3.0 で追加)
  • kintoneUtility.rest.getFormLayout(v0.3.0 で追加)

サンプルコード

次のアプリの「Number フィールドが 0 より大きい全レコード」を取得するサンプルコードです。

  • レコード番号:529
  • 取得条件(query):Number フィールドが 0 より大きいレコード
  • レスポンスに含めるフィールドコード(fields):String,Number
  • ゲストスペースではない。

まず、「kintone Utility Library for JavaScript」を使わなかった場合、Promise を使い再帰的にレコードを取得する必要があります。
「kintone Utility Library for JavaScript」を使わなかったときのコードを次に示します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/*
* kintone JS SDK Sample Program (JavaScript)
* Copyright (c) 2017 Cybozu
*
* Licensed under the MIT License
* https://opensource.org/license/mit/
*/

(function() {
  'use strict';
  function fetchRecords(appId, opt_offset, opt_limit, opt_records) {
    const offset = opt_offset || 0;
    const limit = opt_limit || 100;
    let allRecords = opt_records || [];
    const params = {app: 529, query: 'Number > 0 order by レコード番号 asc limit ' + limit + ' offset ' + offset};
    return kintone.api(kintone.api.url('/k/v1/records', true), 'GET', params).then((resp) => {
      allRecords = allRecords.concat(resp.records);
      if (resp.records.length === limit) {
        return fetchRecords(appId, offset + limit, limit, allRecords);
      }
      return allRecords;
    });
  }

  fetchRecords(kintone.app.getId()).then((records) => {
    console.log(records);
  });
})();

一方、「kintone Utility Library for JavaScript」を使うと、パラメーター(JSON)を指定するだけで、 全レコードを取得できます。
「kintone Utility Library for JavaScript」を使ったときのコードを次に示します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
/*
* kintone JS SDK Sample Program (kintone Utility Library for JavaScript)
* Copyright (c) 2017 Cybozu
*
* Licensed under the MIT License
* https://opensource.org/license/mit/
*/
(function() {
  'use strict';
  kintoneUtility.rest.getAllRecordsByQuery({
    app: 3,
    query: 'Number > 0',
    fields: ['String', 'Number'],
    isGuest: false
  }).then((response) => {
    console.log(response);
  }).catch((error) => {
    console.log(error);
  });
})();

このように Promise や再帰処理がなくなることによるコードの簡素化が実現できます。
また、すべてのレスポンスは Promise オブジェクトで返されます。

おわりに

「kintone Utility Library for JavaScript」は、皆さんの開発負荷を軽減できるよう、今後も機能を拡充していく予定です。
ぜひ、コメントでのフィードバックをお待ちしています。

更新履歴

  • 2017/08 v0.2.0 を公開しました。
    次の機能を追加しました。
    • 単一ファイルを取り扱う機能を追加
    • 外部サービスと連携するための認証機能を追加
  • 2017/09 v0.2.2 を公開しました。
    次の修正をしました。
    • ライブラリの更新
  • 2017/11 v0.3.0 を公開しました。
    次の機能を追加しました。
    • kintoneUtility.rest.getFormFields
    • kintoneUtility.rest.getFormLayout

kintone Utility for JavaScript を使ってみたよ (External link)