kintone REST API Client の歩き方(ほんの一歩目)

# はじめに
kintoneのjavascriptカスタマイズに日々勤しまれているかと思いますが笑、みなさん **[kintone REST API Client](https://github.com/kintone/js-sdk/tree/master/packages/rest-api-client)** 使ってますか？？

 **[kintone REST API Client](https://github.com/kintone/js-sdk/tree/master/packages/rest-api-client)** は、kintoneが提供している **[kintone REST API](https://cybozu.dev/ja/kintone/docs/rest-api/list/)** をラッピングしたライブラリです。
このライブラリのおかげで、kintoneへのデータアクセスがグッと楽になるので、ぜひ積極的に使ってほしいところ。
主にサイボウズ社のメンバーがメンテナンスしてくれています。メンテナンスしてくれている方々に感謝しながらバンバン使っていきましょう！

ところが、コーディング初級者にとっては、**[kintone REST API Client](https://github.com/kintone/js-sdk/tree/master/packages/rest-api-client)** のサイトを読むのが中々ハードルが高いかもなぁと思うので、読み方などをご紹介できればと思います！


# まずはともかくググってみる
私の検索結果なので、皆さんがこうなるとは限りませんが、公式サイト(？)は2番目に出てくるんですね…。ちなみに、1番目は **[cybozu developer Network](https://cybozu.dev/ja/kintone/sdk/rest-api-client/kintone-javascript-client/)** のサイトです。
(公式(？)サイトなので1番目に出てきてほしいところ。SEO頑張ってほしい…。)

で、Github内の **[kintone REST API Client](https://github.com/kintone/js-sdk/tree/master/packages/rest-api-client)** に移動しましょう！

![2023-05-31_11h31_56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319512/44c770a2-ac1d-c0ce-ac1f-d3e9763c400d.png)


ちなみに **[cybozu developer Network](https://cybozu.dev/ja/kintone/sdk/rest-api-client/kintone-javascript-client/)** に遷移してしまった場合には、下記の画像を参考に **[kintone REST API Client](https://github.com/kintone/js-sdk/tree/master/packages/rest-api-client)** に移動しましょう！
![2023-05-31_14h08_14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319512/9b718ca5-fc82-ce0e-ec1c-56faed506ef8.png)




# **[kintone REST API Client](https://github.com/kintone/js-sdk/tree/master/packages/rest-api-client)** を見てみる

## トップページを見てもビビらない！笑

![2023-05-31_12h48_44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319512/db568aed-6e93-13f3-7ef7-697b7b952f3e.png)


こんな感じなので、こういうサイトを初めて見た人は、ちょっとビックリしちゃうかもしれませんが、落ち着いてスクロールを下げていきましょう！

## READMEを見てみましょう

特にちゃんと見てほしいのは、READMEの部分からです。
![2023-05-31_12h53_09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319512/a2fa117a-65aa-7314-c422-eca7c554448f.png)
特に見てほしいのは **「References」** の部分をクリックした先のページ内リンク先の **「Record」「App」「File」「BulkRequest」** がポイントです！


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319512/8c2ff72b-163b-3955-aaa8-77e05a893ee8.png)

## よく使う「[Record](https://github.com/kintone/js-sdk/blob/master/packages/rest-api-client/docs/record.md)」を見てみよう！

![2023-05-31_13h04_14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319512/047f83f4-5044-c130-7f6c-08a5c89790ad.png)


## [getAllRecords](https://github.com/kintone/js-sdk/blob/master/packages/rest-api-client/docs/record.md#getallrecords) について見てみよう！

![2023-05-31_13h35_55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319512/156b21df-f25b-92d5-d74e-f16f4abfc3d1.png)

### コードに書くとこんな感じ！
※新規登録画面表示時に、スタッフマスタアプリから全レコード取得するサンプルコードです。`apiToken` と `app` は適宜書き換えてくださいね。
``` javascript
// ---------------------------------------------
// EVENT:create.show
// ---------------------------------------------
kintone.events.on([
  'app.record.create.show'
], async event => {
  const record = event.record;

  try {
    const staffRecords = await (new KintoneRestAPIClient({
      auth: { apiToken: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx' }
    })).record.getAllRecords({
      app: 999,
      fields: ['$id', 'code', 'name'],
      condition: ''
    }).then(resp => {
      console.log(resp);
      return resp;
    }).catch(error => {
      console.log(error);
      return Promise.reject(new Error('GET : スタッフマスタ / ' + error.message));
    });
    console.log(staffRecords);
  } catch (e) {
    console.log(e);
    event.error = 'エラーが発生しました。';
  } finally {
    return event;
  }
}); // create.show
```

リファレンスの内容と、実際のコードを比較してみながら、どのように記述すると良いかについて試行錯誤していただければと思います！


# **[kintone REST API Client](https://github.com/kintone/js-sdk/tree/master/packages/rest-api-client)** のセットアップの仕方
イチバンのおすすめは、 **[Cybozu CDN](https://cybozu.dev/ja/kintone/sdk/library/cybozu-cdn/)** のリンクを読み込ませればOK！

![2023-05-31_14h25_40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/319512/d5bc072d-7839-95ec-a6ad-9349d9c5395c.png)



# まとめ
ほんの一歩目の紹介しかできていませんが、 **[kintone REST API Client](https://github.com/kintone/js-sdk/tree/master/packages/rest-api-client)** を使うきっかけになっていただければと思います。

**[kintone REST API](https://cybozu.dev/ja/kintone/docs/rest-api/list/)** を使いやすくするためのライブラリなので、ぜひ積極的にお使いいただければと思います！

ただし、kintoneのデータに外部からアクセスできるということは、それなりのリスクはあるので、その点に関しては十分理解し、活用いただければと思います。