LoginSignup
3
1

More than 5 years have passed since last update.

kintoneのREST APIを触ってみる(GET records.json編)

Posted at

開発者用アカウントを作ったまま放置していたのでちょっと触ってみた。

サンプルに使ったアプリ

FAQアプリを使ってみました。
https://kintone-apps.cybozu.co.jp/023-faq.html
スクリーンショット 2017-02-23 2.06.29.png

ユーザー認証

参考:https://cybozudev.zendesk.com/hc/ja/articles/201941754#step7

APIトークンを[アプリ > アプリの設定]から設定する。
スクリーンショット 2017-02-23 2.03.29.png
[アプリを更新]を実行しないとトークンが有効にならないので要注意。

レコードを取得する

参考:https://cybozudev.zendesk.com/hc/ja/articles/202331474
ヘッダーにX-Cybozu-API-Token: YOUR_TOKENをつけてGETする。

curl  -H "X-Cybozu-API-Token: YOUR_TOKEN" "https://YOUR_SUBDOMAIN.cybozu.com/k/v1/records.json?app=APP_ID" | jq .

戻り値は以下の通り。

{
  "records": [
    {
      "文字列__複数行__1": {
        "type": "MULTI_LINE_TEXT",
        "value": ""
      },
      "カテゴリー": {
        "type": "CATEGORY",
        "value": [
          "採用"
        ]
      },
      "文字列__複数行__0": {
        "type": "MULTI_LINE_TEXT",
        "value": "やってません。"
      },
      "レコード番号": {
        "type": "RECORD_NUMBER",
        "value": "1"
      },
      "更新者": {
        "type": "MODIFIER",
        "value": {
          "code": "Administrator",
          "name": "Administrator"
        }
      },
      "作成者": {
        "type": "CREATOR",
        "value": {
          "code": "Administrator",
          "name": "Administrator"
        }
      },
      "文字列__複数行_": {
        "type": "MULTI_LINE_TEXT",
        "value": "採用やってますか?"
      },
      "$revision": {
        "type": "__REVISION__",
        "value": "1"
      },
      "更新日時": {
        "type": "UPDATED_TIME",
        "value": "2017-02-22T16:49:00Z"
      },
      "作成日時": {
        "type": "CREATED_TIME",
        "value": "2017-02-22T16:49:00Z"
      },
      "$id": {
        "type": "__ID__",
        "value": "1"
      }
    }
  ],
  "totalCount": null
}

取得するフィードを指定する

fieldsクエリを使用すると、レスポンスの内容を指定できる。

curl  -H "X-Cybozu-API-Token: YOUR_TOKEN" "https://YOUR_SUBDOMAIN.cybozu.com/k/v1/records.json?app=APP_ID&fields=カテゴリー,文字列__複数行_,文字列__複数行__0" | jq .

これで見やすくなった。

{
  "records": [
    {
      "カテゴリー": {
        "type": "CATEGORY",
        "value": [
          "経理"
        ]
      },
      "文字列__複数行__0": {
        "type": "MULTI_LINE_TEXT",
        "value": "担当者に連絡してください。"
      },
      "文字列__複数行_": {
        "type": "MULTI_LINE_TEXT",
        "value": "経費申請はどうしたらいいですか?"
      }
    },
    {
      "カテゴリー": {
        "type": "CATEGORY",
        "value": [
          "採用"
        ]
      },
      "文字列__複数行__0": {
        "type": "MULTI_LINE_TEXT",
        "value": "やってないったらやってないです。"
      },
      "文字列__複数行_": {
        "type": "MULTI_LINE_TEXT",
        "value": "本当にやってないんですか?"
      }
    },
    {
      "カテゴリー": {
        "type": "CATEGORY",
        "value": [
          "採用"
        ]
      },
      "文字列__複数行__0": {
        "type": "MULTI_LINE_TEXT",
        "value": "やってません。"
      },
      "文字列__複数行_": {
        "type": "MULTI_LINE_TEXT",
        "value": "採用やってますか?"
      }
    }
  ],
  "totalCount": null
}

取得するデータを絞り込む

queryというクエリをつけることで、取得するデータを絞り込むことができます。

FAQアプリの質問文(F)は"文字列_複数行"に格納されている様子ですので、質問文で検索してみます。

実行するクエリ

文字列__複数行_ like "採用"
これをUTF-8でエンコードして、queryに渡してやります。

curl  -H "X-Cybozu-API-Token: YOUR_TOKEN" "https://YOUR_SUBDOMAIN.cybozu.com/k/v1/records.json?app=APP_ID&fields=カテゴリー,文字列__複数行_,文字列__複数行__0&query=%E6%96%87%E5%AD%97%E5%88%97__%E8%A4%87%E6%95%B0%E8%A1%8C_%20like%20%22%E6%8E%A1%E7%94%A8%22" | jq .

「採用」というキーワードが入っているデータのみ引き出せているのがわかるかと思います。

{
  "records": [
    {
      "カテゴリー": {
        "type": "CATEGORY",
        "value": [
          "採用"
        ]
      },
      "文字列__複数行__0": {
        "type": "MULTI_LINE_TEXT",
        "value": "やってません。"
      },
      "文字列__複数行_": {
        "type": "MULTI_LINE_TEXT",
        "value": "採用やってますか?"
      }
    }
  ],
  "totalCount": null
}

とりあえずここまで。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1