Konflik Laluan Kad Liar Gin: Penyelesaian Tersuai dengan NoRoute
Apabila mencipta program Gin, adalah perkara biasa untuk menghadapi konflik antara laluan kad bebas dan yang sedia ada laluan kanak-kanak. Ralat ini berlaku apabila cuba menambah laluan kad bebas, seperti "/*", yang bercanggah dengan laluan yang telah ditetapkan.
Dalam contoh yang diberikan, konflik timbul kerana mempunyai kedua-dua laluan "/istimewa" dan laluan wildcard. Walau bagaimanapun, adalah mungkin untuk mengatasi konflik ini dan menyediakan laluan yang diingini dengan menggunakan fungsi gin.NoRoute().
Fungsi gin.NoRoute() membenarkan takrifan laluan yang mengendalikan sebarang permintaan yang tidak sepadan. Dengan meletakkannya di penghujung takrif laluan, ia memastikan semua permintaan yang tidak dikendalikan diarahkan kepada sumber lalai.
Untuk mencapai hasil yang diingini, ubah suai kod seperti berikut:
<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>
Dengan pengubahsuaian ini, permintaan untuk "/istimewa" akan dikendalikan oleh fungsi tersuai, manakala semua permintaan lain akan kembali kepada sumber lalai.
Untuk maklumat lanjut, rujuk perbincangan Stack Overflow ini: https: //stackoverflow.com/a/32444263/244128
Atas ialah kandungan terperinci Cara Menyelesaikan Konflik Laluan Kad Liar Gin: Penyelesaian Menggunakan `NoRoute`. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!