ポストプロセッサーフック

Manael v3.1 では、画像変換の後段で独自処理を差し込める Go API フックが追加されました。Manael をライブラリとして組み込み、変換済みバイト列を送信前に確認、キャッシュ、置換、加工したい場合は WithPostProcessor を使用します。

フックが実行されるタイミング

ポストプロセッサーフックは、Manael が画像変換に成功した後にのみ実行されます。

  • 変換済み画像のバイト列を受け取ります。
  • 何も変更せずそのまま返すこともできます。
  • アプリケーションの都合に応じて別のバイト列に置き換えることもできます。
  • アップストリームのレスポンスがそのまま通過した場合は呼び出されません。

基本例

proxy := manael.NewServeProxy(upstreamURL,
	manael.WithPostProcessor(func(data []byte) ([]byte, error) {
		// 変換済みバイト列をキャッシュやオブジェクトストアへ保存します。
		return data, nil
	}),
)

主なユースケース

  • 変換済み画像を外部キャッシュへ保存する。
  • フォーマット変換後にアプリケーション固有の後処理を行う。
  • 最終的な変換結果を必要とする下流システムへ連携する。

エラーハンドリング

フックがエラーを返した場合、Manael は失敗をログに記録し、加工途中の結果ではなく元のアップストリームレスポンスへフォールバックします。これにより、独自ロジックが失敗しても安全にリクエスト処理を継続できます。

挙動上の注意点

  • このフックはコマンドラインオプションや環境変数ではなく、Go ライブラリ向け API です。
  • フックはフォーマット変換後に実行されるため、最終的な変換済みペイロードを扱います。
  • リクエストで変換が発生しなかった場合、フックは実行されません。