いつもお世話になっております。
秋山と申します。
今回はタイトルにありますように、
REST API 更新(PUT)メソッド利用時の数値フィールドの書き方について
お聞きしたく起票致しました。
サイボウズ社が公開している更新時の
数値フィールドの推奨フィールド形式は、
"<フィールドコード>": {
"value":"123"
}
となっており、値の部分("123"の部分)にダブルコーテーションが付与されています。
しかし、値の部分にint型の変数を置いた場合に以下のように設定するとエラーが起きてしまいます。
"<フィールドコード>": {
"value":"\"" + number + "\""
}
※「number」がint型の変数
単純にダブルコーテーションで囲まずに更新を行うとエラーなく、動作を行いますが、推奨されている書き方と異なってしまうため、
今回、ご確認を兼ねたご質問をさせて頂きました。
お答え頂ければ幸いです。
<正常に動作するが推奨の書き方ではない方法>
"<フィールドコード>": {
"value":number
}
※「number」がint型の変数
秋山さんこんにちは。
>"value": “"” + number + “"”
これですと、valueの値は、「“123”」というダブルクォーテーションのついた文字列になるため、エラーになります。
numberが数値の場合、
>"value": “123”
この形式を表現する厳密な方法は、
“value”: number.toString()
となりますが、
“value”: number
のままでまったく問題ありません。ご安心ください。
なぜ公式のドキュメントが文字列形式で表記されているかというと、JavaScriptで扱える数値の範囲よりも、kintoneで扱える数値の範囲のほうが大きいからです。
JavaScriptで正確に扱える整数の最大値は以下のメソッドで確認できます。
Number.MAX_SAFE_INTEGER
9007199254740991
これを超える整数はJavaScriptで扱えませんが、文字列にすることでkintoneで扱うことができます。そのため、参照系のAPIでは文字列で値を返すことになっています。
通常はそんなに大きい(小さい)値を扱うことはありませんので、それほど意識する必要はありません。
JavaScriptで扱える数値の範囲について、詳しい説明はこちらをごらんください。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Numbers_and_dates
門屋さん
分かりやすいご説明ありがとうございました!
>JavaScriptで扱える数値の範囲よりも、kintoneで扱える数値の範囲のほうが大きいからです。
このような背景があったのですね。。
基本的には今の利用方法で問題ないとのことなので、
これからも利用していきたいと思います!!