kintone → 公開 API

kintone のデータを、
そのまま公開 APIに。

Webhook をトリガに REST で正本を取り直し、選んだフィールドだけを認証なしの読み取り API として配信。Cloudflare のエッジでキャッシュします。

GET https://ripples.monosus.party/v1/products/index 認証ヘッダーなし
{
  "appId": "products",
  "items": [
    { "$id": "1042", "name": "リネンシャツ", "price": 8800 },
    { "$id": "1043", "name": "コットンパンツ", "price": 12000 }
  ],
  "count": 2
}
設計の3本柱

公開してよいものだけを、正本のまま。

kintone を「公開データソース」に変えるための、3つの約束。

01 / 同期

常に kintone と同期

kintone のレコードが更新されると Webhook で検知し、公開データへ自動で反映。手作業のエクスポートは要りません。表示されるのは、いつも最新の内容です。

02 / 最小化

出すのは選んだ列だけ

公開フィールドは明示的な許可リスト。指定していない列は API に一切現れません。内部 appId も隠したうえで配信します。

03 / opt-in

既定は「何も公開しない」

すべては非公開の状態から始まります。アプリ単位・フィールド単位で、公開する範囲を自分で決められます。

仕組み

受信から配信まで、5 ステップ。

Webhook を受けてから公開 API に載るまでは、すべて Cloudflare 上で完結します。

01

受信hook.ripples.monosus.party

kintone の Webhook を受け取り、即座に 202 を返します。処理は後段へ切り離し、kintone を待たせません。

02

キュー投入

(appId, recordId) だけを Queue に積みます。ペイロード本文は使わず、対象の在り処だけを記録します。

03

正本を取り直し

登録トークンで kintone REST を叩き、revision ガード付きで最新レコードを upsert。順序の入れ替わりにも耐えます。

04

公開フィールドへ射影

許可リストのフィールドだけを公開用に整形。内部 appId は伏せ、出してよい形だけを保存します。

05

エッジ配信ripples.monosus.party/v1

一覧(index)と詳細(details)を、認証なし・エッジキャッシュ付きで返します。keyset ページングと等価フィルタに対応。

Ripples

kintone を、公開データソースに。