Arkadaşlar bu makalemde sizlere bu hatanın neyden dolayı kaynaklandığını bu ve benzeri alacağınız hataları nasıl kolay bir şekilde bulabileceğinizi anlatıcam

Hata mesajında “Failed to load API definition. – Errors – Fetch error –
undefined /swagger/v1/swagger.json ” yazmakta aslında size nereden kaynaklandığı hakkında bilgi vermektedir.

Hata Neyden Kaynaklanıyor ?

Hata API de route tanımlamalarınızın duplicate olmasından kaynaklanan bir hata. Metod(Action) isimleriniz farklı olsada route isimlendirmede yanlışlıkla aynı route vermeniz durumunda karşılaşırsınız.

Farkettiyseniz [HttpGet(“Test/{id}”)] Route parametreleri aynı olmasına rağmen. Test ve Test2 action metodları farklı olduğu için compile anında visual studio IDE niz herhangi bir hata vermeyecektir. Bu yüzden hatayı en son swagger UI tarafına baktığınızda farkedeceksiniz ve hatayı hangi controllerda yaptığınızı teker teker aramanız gerekecektir.

Hata Mesajı

Karşınıza bunun gibi bir hata çıkıcak, hatanın neden kaynaklandığı hakkında detaylı bir bilgi vermiyor farkettiyseniz.

Hatanın Nerede Olduğunu Anlarım ?

Hatanın gösterildiği browser sekmesine sağ tıklayıp “Inspect” veya “İncele” kelimesine tıklayın alternatif olarak Ctrl + Shift + I kombinasyonu ile hızlı bir şekilde console sekmesine gelebilirsiniz

Yukarıdaki resimde göreceğiniz gibi console da bir hatanın olduğunu farkeceksiniz. Yazının sağ tarafındaki v1/swagger.json:1   kelimesine tıkladığınızda size hatanın nereden kaynaklandığını detaylı bir şekilde gösteren sayfaya yönlendirileceksiniz.

Hatanın Nereden Kaynaklandığını Nasıl Anlarım ?

Yukarıda görebileceğiniz gibi bir hata mesajı göreceksiniz burada.

“NotSupportedException: HTTP method “GET” & path “api/Test/Test/{id}” overloaded by actions – Nucleus.Web.Api.Controller.TestController.Test (Nucleus.Web.Api),Nucleus.Web.Api.Controller.TestController.Test2 (Nucleus.Web.Api). Actions require unique method/path combination for Swagger 2.0. Use ConflictingActionsResolver as a workaround “

Burada size hangi controllerda hangi actionun duplicate route parametresi içerdiğini detaylı bir şekilde göstermektedir. Test ve Test2 metodları aynı route parametresi içermekte olduğundan dolayı route parametrelerini değiştirip kolayca bu sorunu çözebilirsiniz.

Bu makalemi beğendiyseniz yorum yaparak bana destek olabilirsiniz.

Bu arada ekran görüntülerini alırken Nucleus Vue.js(TypeScript) + Asp.net Core Boilerplate üzerinden örnek gösterdim. Gerçek hayatta tanımadığım ama github üzerinden severek takip ettiğim Ali Rıza Adıyahşi‘nin oluşturduğu bu projeye https://github.com/alirizaadiyahsi/Nucleus adresinden erişebilir ve destek verebilirsiniz.

Cevap Ver

Lütfen yorumunuzu yazınız!
Lütfen isminizi buraya giriniz