コードをいじっていたらREST APIでkintoneレコード登録がうまくいかなくなり、検証のためにVSCodeの「REST API」機能拡張で以下のようなリクエストを投げた。
POST https://{{subdomain}}.cybozu.com/k/v1/records.json HTTP/1.1 Host: {{subdomain}}.cybozu.com:443 X-Cybozu-Authorization:{{base64encoded}} Content-Type: application/json {"app":6,"records":[ [ { "salesid":{"value":187}, "salesdate":{"value":"2020-12-31"}, "totalamount":{"value":null}, "tax_included":{"value":0}, "torihikisaki":{"value":"S"}, "segment":{"value":"AA003"}, "tbl_products":{ "value":[ {"value":{"productid":{"value":"L1001"}, "productname":{"value":"K04"}, "qty":{"value":1}, "amount":{"value":0}, "tax":{"value":0}}} ] } } ], [ { "salesid":{"value":189}, "salesdate":{"value":"2020-12-31"}, "totalamount":{"value":null}, "tax_included":{"value":0}, "torihikisaki":{"value":"日本"}, "segment":{"value":"AA003"}, "tbl_products":{ "value":[ { "value":{ "productid":{"value":"L1001"}, "productname":{"value":"K04"}, "qty":{"value":1}, "amount":{"value":0}, "tax":{"value":0} } } ] } } ] ] }
戻ってくるレスポンスはステータスコードが200なのに、戻り値が空になっており、レコードの登録もされていない。
HTTP/1.1 200 OK Server: nginx Date: Mon, 18 Jan 2021 02:27:35 GMT Content-Type: application/json;charset=utf-8 Transfer-Encoding: chunked Connection: close Vary: Accept-Encoding X-Frame-Options: SAMEORIGIN Cache-Control: no-cache, no-store, must-revalidate X-ConcurrencyLimit-Limit: 100 X-ConcurrencyLimit-Running: 1 Set-Cookie: JSESSIONID=RsM3r5Exd9vwAqwTQPLEM8Fti6rzlRnI1XXNWrTYTSliUwzWqalUdd7pZuJCzN0v; Path=/; Secure; HttpOnly; SameSite=Lax Expires: Thu, 01 Jan 1970 00:00:00 GMT Strict-Transport-Security: max-age=315360000; includeSubDomains; preload; X-UA-Compatible: IE=Edge X-Content-Type-Options: nosniff X-XSS-Protection: 1; mode=block Content-Encoding: gzip { "ids": [], "revisions": [] }
疎通には成功しているのに登録されない、こんな現象に初めて遭遇したので困惑したのだが、cybozu developer networkで探したら似た事例があった。
https://developer.cybozu.io/hc/ja/community/posts/900002762723-VBA%E3%81%A7kintone%E3%81%AB1%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E7%99%BB%E9%8C%B2%E3%81%97%E3%81%9F%E3%81%84%E3%81%AE%E3%81%A7%E3%81%99%E3%81%8C-%E3%83%87%E3%83%BC%E3%82%BF%E3%81%8C%E7%99%BB%E9%8C%B2%E3%81%95%E3%82%8C%E3%81%9A%E3%81%AB%E7%A9%BA%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%81%8C%E8%BF%BD%E5%8A%A0%E3%81%95%E3%82%8C%E3%82%8B?input_string=%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89200%E3%81%A0%E3%81%8Ckintone%E3%81%AB%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E7%99%BB%E9%8C%B2%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%AA%E3%81%84developer.cybozu.io
よく見るとrecordの項目が配列になっている。
自分の方もよく見ると、recordsの項目が、二重の配列になっていた。
これでエラー帰って来ないのはちょっと納得いかないが、まあ原因がわかったので良しとしよう……。