Gin ワイルドカード ルートの競合: NoRoute を使用したカスタム ソリューション
Gin プログラムを作成するとき、ワイルドカード ルートと既存のルートの間で競合が発生するのが一般的です。子ルート。このエラーは、既に定義されているルートと競合する「/*」などのワイルドカード ルートを追加しようとすると発生します。
この例では、両方の「/special」ルートがあるために競合が発生します。そしてワイルドカードルート。ただし、gin.NoRoute() 関数を利用することで、この競合を克服し、目的のルートを提供することができます。
gin.NoRoute() 関数を使用すると、一致しないリクエストを処理するルートを定義できます。これをルート定義の最後に配置することで、未処理のリクエストがすべてデフォルトのリソースに確実に送信されます。
望ましい結果を達成するには、コードを次のように変更します。
<code class="go">r.GET("/special", func(c *gin.Context) { // Serve the special resource... r.NoRoute(func(c *gin.Context) { // Serve the default resource...</code>
この変更により、「/special」へのリクエストはカスタム関数によって処理されますが、他のすべてのリクエストはデフォルトのリソースに戻ります。
詳細については、このスタック オーバーフローのディスカッションを参照してください: https: //stackoverflow.com/a/32444263/244128
以上がGin ワイルドカード ルートの競合を解決する方法: `NoRoute` を使用した解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。