【kintone】リクエストパラメータの添え字

REST APIを使用する際にチュートリアル上、リクエストパラメータ(JSONデータ)の添え字でクオテーションで括っているコードと括られていないコートがあります。

括っているケース

varrequestParam={
'app':kintone.app.getId(),
'query':kintone.app.getQuery()
};
kintone.api(kintone.api.url('/k/v1/records',true),'GET', requestParam,function(resp) {
///後略

括っていないケース

'GET', {
app:updateAppId,
query:'lookup = '+event.record['レコード番号'].value
}

appとquery部分なのですが、もちろん前後の文脈から変数ではないのですが、後者はクオテーションで括られていないですが動作します。また前者のように括っても動作しているように思われます。

JSONデータの私の拙い理解では添え字はクオテーションで括るはずだったと思うのですが、どちらが正しいAPI上の記法なのでしょうか?

宜しくお願い申し上げます。

答えとしては

  • kintone API上の記法の問題ではなく、JavaScriptの記法の問題
  • JavaScriptの言語仕様としてはどちらも正しいので、お好みで
  • JSONはキーをダブルクォートでくくるのが必須だけど、JavaScriptオブジェクトはダブルクォート、シングルクォート、クォート省略どれも可能

です。

 

JSONとの違いの解説記事

http://masarufuruya.hatenadiary.jp/entry/2017/09/02/162022

 

ESLintでのコーディング規約設定例(文法上は両方認められているが、ツールでチェックして統一できる)

https://eslint.org/docs/rules/quote-props

REST APIをcurlとかで叩く場合はJSON文字列として書くのが必須ですが、

JavaScript上でkintone.api()の引数に渡すときは、

JSON文字列でなくて「JavaScriptオブジェクトをそのまんま渡せばOK」

という回答のほうが良いかもですね。

赤座様

コメント有難うございます。

てっきりパラメータはJSONデータを渡しているものだと思っておりました。

また、リンク先非常に分かりやすかったです。

いつもご教示頂き深謝いたします。

*チュートリアルも同じ作者であれば、同じ記法で書いてくれればよいのにと思ったりもしますが。。

コーダーの中では使い分けがあるのかもしれませんが、、

宜しくお願い申し上げます。

まぁこの辺の「ユルさ」がJSの良いところでもあるので、

他者のコード読むときは暖かい気持ちで脳内変換しましょうw

 

開発時に記法を統一したければ、ESLint使うのがおすすめです。

kintone向けのチュートリアルもあるので、興味あれば。

https://developer.cybozu.io/hc/ja/articles/360000098886