PHP の世界では、ミドルウェア チェーンは一般的な開発モデルであり、リクエストの処理、検証および承認操作などの実行に役立ちます。ただし、Go Web フレームワークである Gin では、ミドルウェア チェーンの動作が少し異なります。停止できないミドルウェア チェーンを使用します。つまり、前のミドルウェアにエラーがあるかどうかに関係なく、各ミドルウェアが実行されます。この設計によりコードは複雑になりますが、柔軟性とカスタマイズ性も向上します。この記事では、PHP エディタ Apple による Jin フレームワークのミドルウェア チェーンの動作原理と使用法を詳しく紹介します。
リクエストを進める前にセッションを確認したいのですが、セッションを確認するためのミドルウェアがあります。これがエンドポイントです:
リーリーこれは checksession()
ミドルウェアです。値はプレースホルダー atm:
まず、
"/" ルートにアクセスします。これは
/profile/:pid エンドポイントにリダイレクトされ、「無効な」セッションの場合は # にリダイレクトされます ## /sign-in
エンドポイント。 /sign-in
エンドポイントに再ルーティングされていますが、c.next()
をクリックしなくても、/profile/:pid
エンドポイントは実行を完了します。
これらを
ブロックに配置して、c.redirect()
と c.next()
の 1 つだけが実行されるようにしてください。 #回避策
c.Abort() を呼び出して、残りのハンドラーが実行されないようにする必要があります。
c.Abort()
中止により、保留中のハンドラーが呼び出されなくなります。これによって現在のハンドラーは停止されないことに注意してください。現在のリクエストが承認されていることを検証する承認ミドルウェアがあるとします。認証が失敗した場合 (例: パスワードの不一致)、Abort を呼び出して、このリクエストの残りのハンドラーが呼び出されないようにします。
以上がGo/Gin でミドルウェア チェーンを停止できませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。