2016年1月10日の定期メンテナンスの、kintone APIの更新に関する情報をお知らせします。
本アップデートは2015年12月13日に予定しておりましたが、「kintone on cybozu.com」のリリースが延期となった影響で、
2016年1月10日のアップデート後での更新に変更されています。
kintone REST API
変更される仕様
- REST APIのURLの拡張子は小文字だけしか対応しなくなります。
例として、12月のアップデート後はGETで /k/v1/apps.JSON を呼ぶと、404エラーが返るようになります(現状では200が返ります)。
エラーが返らないようにするためには小文字で /k/v1/apps.json を呼ぶように変更をお願いします。 - ユーザーの言語設定が「ブラウザに従う」になっている場合に、Accept-Languageヘッダーがないとき、出力するメッセージ(APIのエラーなど)はcybozu.com共通管理の「ローカライズの設定」の「言語」に設定されている言語になります。
アップデート前は、出力するメッセージは日本語のみです。
※12月のアップデートで、cybozu.com共通管理に「ローカライズの設定」の「言語」を設定(ja,en,zh)する機能が追加されます。
※日本国内のお客様は原則デフォルトで「ローカライズの設定」の「言語」が「ja」になります - 日時のフォーマットの仕様が変更されます。
アップデート前フィールドタイプ フォーマット 説明 日時 取得時 YYYY-MM-DDTHH:MM:SSZ - 「YYYY-MM-DD」と「HH:MM:SS」の間の「T」は固定値です。
- 「HH:MM:SS」の後ろの「Z」は固定値です。
- 取得時の「Z」はUTCを表します。一覧の取得APIでは日時はUTCで出力されます。
- 日本時間(JST)の2012年3月22日14時00分は次のように表せます。
例)「2012-03-22T05:00:00Z」
登録・更新時 YYYY-MM-DDTHH:MM:SS±HH:MM
または YYYY-MM-DDTHH:MM:SSZ- 「YYYY-MM-DD」と「HH:MM:SS」の間の「T」は固定値です。
- 「HH:MM:SS」の後ろの「Z」は固定値です。
- 登録・更新時の「±HH:MM」には、UTCとの時刻の差を指定します。
- 日本時間(JST)の2012年3月22日14時17分は次のように表せます。
- 例1)「2012-03-22T14:17:00+09:00」
- 例2)「2012-03-22T05:17:00Z」
アップデート後フィールドタイプ フォーマット 説明 日時 取得時 YYYY-MM-DDTHH:MM:SSZ - 「YYYY-MM-DD」と「HH:MM:SS」の間の「T」は固定値です。
- 「HH:MM:SS」の後ろの「Z」は固定値です。
- 取得時の「Z」はUTCを表します。一覧の取得APIでは日時はUTCで出力されます。
- 日本時間(JST)の2012年3月22日14時00分は次のように表せます。
例)「2012-03-22T05:00:00Z」 - 「T」以降を省略した場合、UTCとして扱われます。
登録・更新時 YYYY-MM-DDTHH:MM:SS±HH:MM
または YYYY-MM-DDTHH:MM:SSZ- 「YYYY-MM-DD」と「HH:MM:SS」の間の「T」は固定値です。
- 「HH:MM:SS」の後ろの「Z」は固定値です。
- 登録・更新時の「±HH:MM」には、UTCとの時刻の差を指定します。
- 日本時間(JST)の2012年3月22日14時17分は次のように表せます。
- 例1)「2012-03-22T14:17:00+09:00」
- 例2)「2012-03-22T05:17:00Z」
- 「T」以降を省略した場合、UTCとして扱われます。
修正される不具合
- URL上にappパラメータを付加し、ボディにもappを指定している場合、URL上のパラメータが優先される。
改修後は、ボディのappが優先されます。
具体的な例として、レコードの登録APIでURLパラメータに app=1 を指定し、ボディに下記の内容を指定したとします。{ "app": 2, "record": { "hoge": {"value": 123} } }
12月のアップデート前は、app=1 に hoge=123 のレコードが登録されますが、
アップデート後はボディの情報が優先され、app=2 に hoge=123 のレコードが登録されます。 - 「次のキーワードを含む/含まない」を設定した関連レコード一覧(「さらに絞り込む条件」で文字列系のフィールドを指定すると選択出来るドロップダウン)があるとレコードの取得APIで不正なリクエストが発生する。
改修後は正常にレコードが取得出来るようになります。 - レコードのアクセス権の取得APIを使用した際に、取得した値の順番がレコードのアクセス権の画面で設定した「ユーザー/組織/グループ」の順番と異なる。
改修後はレコードのアクセス権の画面に表示されている順番と同じになります。 - 2012年10月以前に作成し、フォームの設定を一度も更新していないアプリに対してフィールドの一覧取得APIを実行すると不正なリクエストになる。
改修後はエラーが発生せず、フィールドの一覧を取得できる。 - ゲストユーザーの一括追加APIでパスワードに64文字を超える長さの文字列が設定できる。
改修後は64文字を超える長さのパスワードは設定できず「3文字以上、64文字以下である必要があります。 」のエラーメッセージが返ってきます。 - 言語設定が「Webブラウザに従う」に設定されてる際、テスト環境にアプリを作成するAPIでアプリを新規作成すると組み込みフィールド(レコード番号、作成者、更新者、作成日時、更新日時)の名前とフィールドコードが日本語になる。
改修後は言語設定が「Webブラウザに従う」に設定されてる際、APIでアプリを新規作成すると組み込みフィールドの名前とフィールドコードがリージョンに対応した言語になります。
修正されるエラーメッセージ
- REST APIのクエリに関連レコード一覧以外のフィールドで関連レコード一覧記法を使ったときのエラー内容が変更されます
- 改修前:指定されたフィールド<フィールド名>が見つかりません。
- 改修後:
クエリの指定が不正です。関連レコード一覧でないフィールド<フィールド名>では関連レコード一覧記法を利用できません。フィールド<フィールド名>に指定したクエリが正しくありません。指定したクエリは、関連レコード一覧フィールドでのみ使用できます。
- レコードのアクセス権に設定したフィールドをフォームの設定の変更APIで削除した際のエラー内容が変更されます
- 改修前:条件が重複しています。
- 改修後:フィールドを削除できません。削除しようとしているフィールドを条件にしたレコードのアクセス権が設定されています。
- レコード一括削除APIでidsを101件以上指定した際のエラー内容が変更されます
- 改修前:不正なリクエストです。
- 改修後:一度に1件から100件までのレコードを削除できます。
※257件以上のレコードを指定した場合、「不正なリクエストです」のエラーが返ってきます
kintone JavaScript API
修正されるエラーメッセージ
- 特定のイベントで閲覧権限のないフィールドを指定した際に表示されるエラー内容が変更されます
- 改修前:(無し。コンソールにjsエラーが表示される。)
- 改修後:event.record['xx'] が不正です。
対象となるイベントは下記の通りです
- レコード編集画面の保存実行前イベント (app.record.edit.submit)
- レコード追加画面の保存実行前イベント (app.record.create.submit)
- レコード編集画面のフィールド値変更時イベント (app.record.edit.change.<フィールドコード>)
- レコード追加画面のフィールド値変更時イベント (app.record.create.change.<フィールドコード>)
- レコード編集画面が表示された時のイベント (app.record.edit.show)
- レコード追加画面が表示された時のイベント (app.record.create.show)
記事に関するフィードバック
記事のコメント欄は記事に対するフィードバックをする場となっております。
右の記事フィードバックのためのガイドを参照してコメントしてください。
記事のリンク切れなど、気になる点がある場合も、こちらのフォームからフィードバックいただけますと幸いです。