Node.jsからAirtableの情報を取得するところまでやってみた
Airtable は contentful みたいな CMS の 1 つで、ブラウザからデータ管理を行ったり、プログラムから API 経由でデータの取得ができるツールです。Airtable 上にアプリを作成し、そこでデータの設計とか管理を行っていきます。Kintone にちょっと近いものを感じました。
今回はその Airtable に対して Node.js からデータの取得を行った時の覚書を思い出しながら書いてます。
環境
- Node.js 10.15.0
- airtable-node 0.1.20
今回、airtable-node - npmというパッケージを使いました。別で Airtable オフィシャルのairtable - npmもあるんですが、今回使ったパッケージの方が使いやすかった気がするのでこっち採用です。メンテを考えたらオフィシャルの方を使うのがいい気はします。
(Node.js のバージョン上げなきゃですね…
前準備
Netlify 側の設定(リポジトリの紐付けなど)と App の作成、データの入力は省きます。
Airtable の API Key と App ID を用意します。
API Key の取得
Airtable のアカウントページから取得できます。
アカウントページには、ダッシュボード右上の自分のアイコンをクリック後にプルダウン表示される「Account」から遷移できます。
App ID
Airtable 上での App が作成されている状態で、以下のページへ遷移します。
作成した App が表示されているので選択すると、API でのアクセス方法が色々書かれたページに遷移します。
App ID は INTRODUCTION の真ん中辺りに緑文字で表示されていました。(記事作成時)
このページが、自分が作成した App 用に自動生成されたドキュメントになるので、ここを参考にコードを書くと良いかと思います。
データの取得をしてみる
今回は Works の App を用意していて、ここから取得します。
事前準備として先程用意した API Key と App ID を環境変数に設定しておきましょう。
こういうコードで取得できました。
import Airtable from 'airtable-node'
const getWorks = () => {
return new Promise((resolve, reject) => {
const { AIRTABLE_API_KEY, APP_ID } = process.env
const worksTable = new Airtable({ apiKey: AIRTABLE_API_KEY })
.base(APP_ID)
.table('works')
return worksTable
.list({
view: 'Grid view' // 作成したAppで使用しているViewを指定
})
.then(response => {
resolve(response)
})
})
}
この関数の返り値に records というパラメーターで配列形式で入ってくるのであとはそれを上手く使ってあげれば OK です。