go with aws lambdaを使用しており、一般的なミドルウェアソリューションを探しています。次のコードがあります:
リーリーターゲット ハンドラー wshandler
がこの型を使用するため、ミドルウェア関数にはパラメーター events.apigatewaywebsocketproxyrequest
があります。
次に示すように、パラメーター event events.apigatewayproxyrequest
を受け取る別のハンドラーがあります。パラメータが一致しないため、このミドルウェアは使用できません。
ミドルウェア ハンドルを interface{}
に変更しようとしましたが、うまくいきませんでした。 go はこのタイプについて文句を言います。
ミドルウェアをどのタイプのハンドラーでも動作させる方法はありますか?
私のシステムで再現できた実用的なソリューションを共有させてください。まず、私が使用しているプロジェクト レイアウトを共有しましょう:
リーリーそれでは、コードに注目してみましょう。
ミドルウェア/ミドルウェア.go
コードは以下のように表示されます:
リーリー基本的な概念を要約しましょう:
event
構造を定義します。これは、record
構造体のラッパーです。 record
構造は、構造の埋め込みを使用して、処理するすべてのイベント (event.apigatewayproxyrequest
や sqsevent
など) を埋め込みます。 events/http_event.json
ここでは何も言うことはありません。
events/sqs_event.json
ここでも同じことが当てはまります。
hello-world/main.go
イベント情報の取得方法にご注意ください。
sqs/main.go
考慮すべき考慮事項がいくつかあります:
これが役に立った場合、または他に何か必要な場合は、お知らせください。ありがとうございます。
以上がGoでラムダミドルウェアのジェネリック型を作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。