API仕様 概要
Speakeasy の全サービス間通信は Cloudflare Workers Native RPC を使用しています。従来の REST API は存在せず、TypeScript メソッドを Service Binding 経由で直接呼び出します。
Native RPC パターン
Section titled “Native RPC パターン”呼び出しフロー
Section titled “呼び出しフロー”ブラウザ (Svelte 5) ↓ Remote FunctionSvelteKit Server (*.remote.ts) ↓ platform.env.{SERVICE}.methodName(params)WorkerEntrypoint (各サービス) ↓ ビジネスロジックPostgreSQL / KV / R2 / Queues / Durable Objectsimport { query } from '$app/server';import { z } from 'zod';import { getFizzClient } from './fizz-rpc';
export const getChatRooms = query(z.object({ limit: z.number().optional() }), async ({ limit }) => { const client = getFizzClient(); return client.listChatRooms({ shopId: getShopId(), userId: getUserId(), userType: 'shop', limit });});詳細は Native RPC & Service Bindings を参照してください。
サービス別 RPC メソッド数
Section titled “サービス別 RPC メソッド数”| サービス | メソッド数 | 主な機能領域 | ドキュメント |
|---|---|---|---|
| Fizz | 23 | チャット・一括配信・WebSocket | Fizz RPC |
| Vintage | 37 | 連絡先・グループ・ラベル・ブラックリスト | Vintage RPC |
| Proof | 20 | 認証・セッション・組織・ユーザー | Proof RPC |
| Bell | 31 | 通知設定・PUSH・メール・LINE | Bell RPC |
| Base | 30 | アカウント・組織・店舗・LINE 連携 | Base RPC |
Public API(外部 API)
Section titled “Public API(外部 API)”外部サービス向けの Public API は Tap ゲートウェイ(tap.plfumg.com)が提供しています。
詳細な API リファレンスは Scalar API Reference として公開されています:
- 本番: card.plfumg.com
- ソース:
docs/card/
共通パターン
Section titled “共通パターン”ページネーション
Section titled “ページネーション”カーソルベースのページネーションを使用します。
// リクエスト{ cursor?: string; limit?: number }
// レスポンス{ items: readonly Item[]; nextCursor: string | null; hasMore: boolean;}全メソッドは Promise を返却します。エラー時は例外がスローされます(Native RPC の制約)。
認証コンテキスト
Section titled “認証コンテキスト”多くのメソッドは cookie パラメータを受け取り、内部でセッション検証を行います。Service Binding 経由の呼び出しでは、呼び出し元がセッション情報を取得済みであることを前提とします。