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