読者です 読者をやめる 読者になる 読者になる

tsukarooohi's diary

CakePHP,CentOS,AWSなど勉強中の技術的記録として利用中。

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

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

    • 1件の時は単数形
      • レコードなら/k/v1/record.json
    • 複数の時は複数形
      • レコードなら/k/v1/records.json
  • HTTPメソッド

    • 取得、追加、更新で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()とかを使ってるのかな? 取り敢えずこれは曲者でした。

広告を非表示にする