はじめに
今回は、2016年12月に(ひそかに)リリースされた、「kintone Utility Library for JavaScript」について紹介します。
「kintone Utility Library for JavaScript」とは、REST APIを使う上で、生産性を向上するために有志により開発されたライブラリです。
例えば、レコードの一括取得/更新/削除など、毎回記述するには面倒な処理を、よりシンプルに記述できます。
それでは、その使い方を説明します。
kintone Utility Library for JavaScriptのダウンロード
GitHubの https://github.com/kintone/kintoneUtility/releases の「Assets」から kintoneUtility.min.js をダウンロードし、カスタマイズの適用画面で設定してください。
※ 本サンプルプログラムはMIT licenseにて提供しています。
kintone Utility Library for JavaScriptの構造
kintoneUtilityオブジェクトには「rest」のプロパティがあり、関数を持っています。 「rest」で提供される関数 関数の一覧はrest_doc.mdに記載されています。
- 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」を使わなかった場合
一方、「kintone Utility Library for JavaScript」を使うと、パラメータ(JSON)を指定するだけで、 全レコードを取得することができます。
「kintone Utility Library for JavaScript」を使った場合
この様に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
こちらのライブラリは、npmに登録される予定はございませんか?
可能であれば、ES6のimportで読み込んで利用できる形式にしていただきたいです。
お世話になっております。
cybozu developer network運営事務局です。
ご要望ありがとうございます。
計画はありますが、まだ具体的なスケジュールは決まっていない段階です。
なお、今後kintone Utilityへのご要望がありましたら、ぜひGitHubのIssuesもご活用ください。
今後ともよろしくお願いいたします。
kintoneUtility.rest.setUserAuth で認証情報でセットした後
ログインが成功か、失敗した(出来ればエラー詳細も)が
わかる方法が見つからなかったのでお教えいただけないでしょうか?
hohashi 様
お世話になっております。
cybozu developer network事務局でございます。
kintoneUtility.rest.setUserAuth の仕様をGitHubで確認したところ、
レスポンス情報は取得できないようです。
取得したい場合は要望として、issueとして登録いただくことも可能です。
また、開発に関する不明点はコミュニティをご活用いただければ幸いです。
今後とも宜しくお願い致します。
お世話になっております。
kintone Utility for JavaScriptにてoffsetの上限値対応に影響してくるメソッドはどちらになりますでしょうか?
宜しくお願い致します。
Tanizaki 様
お世話になっております。cybozu developer network 運営局です。
offsetの上限値対応に影響してくるメソッドは、次のとおりです。
よろしくお願いいたします。
いつもお世話になりましてありがとうございます。
https://kintone.github.io/kintoneUtility/kintoneUtility.min.js
上記URLでのホスティングも終了されましたでしょうか?
昨晩から今朝ほどにかけて過去に開発していたアプリが動作せず、上記URLでホスティングされていないことが確認されました。
現在のところ、404 There isn't a GitHub Pages site here.と表示されています。
追記:2020/7/29 10:00 時点で復帰した模様です。
ご対処いただきましたのであれば、有難うございました。
Satoshi Morita 様
お世話になっております。
cybozu developer network 運営局です。
URLが一時的に利用できない状況が発生していたこと、申し訳ありません。
対応を行い、現在は利用できるようになっております。
この度はご迷惑をおかけいたしまして、申し訳ありませんでした。
cybozu Development team ご担当者様
お世話になります、ご連絡をいただきましてありがとうございます。
本来は有志での開発という位置づけでのライブラリ提供につき、こちらにご連絡するのも心苦しかったのですがご対応いただき有難うございました。
また常々便利に利用させていただいています。ありがとうございます。
GitHub Pagesからの配信が2020-04-01に停止するというお知らせが出ています。
kintone Utility for JavaScript の URL での配信停止について – cybozu developer network