コンテンツにスキップ

フォーム送信データを受け取る

このユースケースでできること

Section titled “このユースケースでできること”

Webフォームや外部サービスからPOSTされたデータをHTTPタイプのCraft Functionsで受け取り、バリデーション後に Craft KVS へ保存できます。この例では、アンケートの userIdfeedback をKVSに保存します。

  • Craft SitesやWebフォームの送信先
    • ブラウザから送信されたアンケート・申込・問い合わせデータを受け取り、KVSや外部サービスへ保存する
  • 外部サービスからのWebhook受信
    • Zapierや決済サービスなど、第三者からPOSTされたデータを加工して記録する
  • 送信データのバリデーションと永続化
    • 必須項目のチェックや形式変換してから、後続処理のためにデータを蓄積する

外部APIからデータを取得して返す場合は 外部 API と連携する を、LINEやSlackなど公式SDKを使う場合は 外部サービスの SDK を利用して連携する を参照してください。

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 });
}
  • req.method でPOSTのみ受け付ける
  • 必須項目のバリデーション後、kvs.write で永続化する
Terminal window
curl -X POST https://<your-endpoint-url> \
-H "Content-Type: application/json" \
-d '{"userId":"user123","feedback":"とても良かったです"}'

{"ok":true} が返れば成功です。KVSへの保存は管理画面で確認できます。