フォーム送信データを受け取る
このユースケースでできること
Section titled “このユースケースでできること”Webフォームや外部サービスからPOSTされたデータをHTTPタイプのCraft Functionsで受け取り、バリデーション後に Craft KVS へ保存できます。この例では、アンケートの userId と feedback をKVSに保存します。
- Craft SitesやWebフォームの送信先
- ブラウザから送信されたアンケート・申込・問い合わせデータを受け取り、KVSや外部サービスへ保存する
- 外部サービスからのWebhook受信
- Zapierや決済サービスなど、第三者からPOSTされたデータを加工して記録する
- 送信データのバリデーションと永続化
- 必須項目のチェックや形式変換してから、後続処理のためにデータを蓄積する
外部APIからデータを取得して返す場合は 外部 API と連携する を、LINEやSlackなど公式SDKを使う場合は 外部サービスの SDK を利用して連携する を参照してください。
サンプルコード
Section titled “サンプルコード”HTTPタイプのファンクションとしてデプロイします。
export default async function (data, { MODULES }) { const { req, res } = data; const { kvs } = MODULES;
if (req.method !== "POST") { return res.status(405).json({ error: "Method not allowed" }); }
const { userId, feedback } = req.body ?? {}; if (!userId || !feedback) { return res.status(400).json({ error: "userId and feedback are required" }); }
const key = `feedback:${userId}`; await kvs.write({ key, value: { userId, feedback, submittedAt: new Date().toISOString() }, });
return res.status(200).json({ ok: true });}前提と手順の詳細
Section titled “前提と手順の詳細”- ファンクションの作成・デプロイ
- ファンクションを作成、編集、削除する(HTTPタイプを選択)
- リクエストボディの形式
このユースケースのポイント
Section titled “このユースケースのポイント”req.methodでPOSTのみ受け付ける- 必須項目のバリデーション後、
kvs.writeで永続化する
curl -X POST https://<your-endpoint-url> \ -H "Content-Type: application/json" \ -d '{"userId":"user123","feedback":"とても良かったです"}'{"ok":true} が返れば成功です。KVSへの保存は管理画面で確認できます。
関連ドキュメント
Section titled “関連ドキュメント”ソリューションブログ
Section titled “ソリューションブログ”- フォーム入力データを HTTP 経由で受け取って KARTE のユーザーデータとして書き込む
- Craft Functions でフォーム入力データを Google スプレッドシートに連携し、KARTE Message のメール配信リストに利用する
- Craft Sites で SPA のフォームを表示する Web ページを作成する
- Craft Sites でフォーム画面と、そのフォームを編集するための管理画面を構築する
- Craft KVS の複数レコード同時取得機能(kvs.list)を使って、一覧画面を実装してみた
- KARTE の接客サービスに添付したファイルを Craft Functions 経由で Craft Sites にアップロードする