メインコンテンツまでスキップ

APIの処理にカスタムコードを書く

カスタムコード(Embed Code) 機能を使うと、MicroService API の各エンドポイントに対して独自の処理を JavaScript で記述できます。
バリデーション・外部API連携・データ加工など、標準機能では対応しにくいロジックを柔軟に追加できます。


実行タイミング

カスタムコードは以下の2つのタイミングで実行されます。

タイミング説明
Before Hookリクエストを受け付けた後、データベース処理のに実行
After Hookデータベース処理の、レスポンスを返すに実行

主なユースケース

Before Hook の活用例:

  • 入力値のカスタムバリデーション
  • リクエストデータの整形・変換
  • 外部サービスへの事前確認(在庫チェックなど)

After Hook の活用例:

  • 外部通知(Slack・メール・Webhook)
  • 関連APIへの連携処理
  • レスポンスデータの加工・フィルタリング

カスタムコードの設定手順

  1. コンソールでチームを選択し、対象の MicroService API を開きます。
  2. カスタムコードを追加したいエンドポイントを選択します。
  3. 「Embed Code」 タブを開きます。
  4. Before Hook または After Hook のエディターにコードを記述します。
  5. 「保存」 をクリックします。

コードの例

Before Hook: 入力バリデーション

// リクエストボディの price が 0 以下の場合にエラーを返す
if (request.body.price <= 0) {
throw new Error("price must be greater than 0");
}

After Hook: Slack への通知

// レコード作成後に Slack Webhook で通知する
const webhookUrl = process.env.SLACK_WEBHOOK_URL;
await fetch(webhookUrl, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
text: `新しいレコードが作成されました: ID=${response.data.id}`
})
});
ヒント

シークレット(APIキーなど)は環境変数として参照できます。
登録方法は APIでシステム連携するシークレット を参照してください。


注意事項

  • カスタムコードは MicroService API のみ に対応しています(IAM API・Storage API は対象外)。
  • 実行時間に上限があります。長時間かかる処理は非同期での設計を検討してください。
  • エラーが発生した場合、Before Hook は処理を中断してエラーレスポンスを返します。After Hook はレスポンスには影響しません。