初めてのREST API(Kintone)まとめとハマりどころ

※当ブログでは商品・サービスのリンク先にプロモーションを含みます。ご了承ください。

Kintone REST API

簡単な仕様

取得、追加、更新の際のリクエスト先が単数形か複数形

  • 1件のレコードなら単数形
    /k/v1/record.json
  • 複数のレコードなら複数形
    /k/v1/records.json

HTTPメソッドは取得、追加、更新で分けられている

  • 取得はGET
  • 追加はPOST
  • 更新はPUT

慣れてしまえばこっちの方が分かりやすいからこのような仕組み?仕様になっているのには納得。

逆にこのような分け方があったんだって自分の開発でも活かすべき考え方です。

ハマりどころ

Kintoneアプリの各フィールドにフィールドコードを設定しないと上手く動作しない

取得レコードのKintoneアプリ側のフィールドのタイプ別で配列の階層が違う

[records]
	[field_code1] => Array
		(
			[type] => NUMBER
			[value] => 0
		)
	[field_code2] => Array
		(
			[type] => CREATOR
			[value] => Array
			(
				[code] => test
				[name] => test
			)
		)

	[field_code3] => Array
		(
			[type] => SINGLE_LINE_TEXT
			[value] =>
		)

Kintone REST APIに関しては仕様に書いてくれてるのでちゃんと読んでさえいれば間違いないんだけど単数形・複数形は中々見落としがちかなと思います。

取得レコードの階層がタイプ別になるのはハマりどころではないけど、プログラム側でごにょごにょする時にちょっとめんどくさいなって感じですかね。

PHPでの処理

`file_get_contents()`を使用する場合`’ignore_errors’ => true,`を指定しないと何かしらの理由でエラーが返ってくる時に`warning`になりエラー内容が分からない。

$context = [
	"http" => [
		"method" => 'GET', 
		"header" => implode("\r\n", $header), 
		"content" => json_encode(["app" => $appId, "query" => '$id="60"']
	],
	'ignore_errors' => true,
];

これは`file_get_contents()`での取得サンプルや、フォーラム内のコードにも出てなかったんだけど、他の人らは確実にエラーが返って来ないように組んでるのか?

もしくは`curl()`とかを使ってるのかな?

取り敢えずこれは曲者でした。