Teknoloji3 dk okuma

Swashbuckle 10.0+ ile OpenApiReference Hatası ve Çözümü

Swashbuckle.AspNetCore 10.0.1'e yükseltme yaptığınızda 'OpenApiReference could not be found' hatası mı alıyorsunuz? Bu yazıda sorunun nedenini ve çözümünü açıklıyoruz.

Pixelance Ekibi26 Aralık 2024

Swashbuckle.AspNetCore ve Swashbuckle.AspNetCore.Swagger paketlerini 10.0.1 sürümüne yükselttiğinizde aşağıdaki hatayla karşılaşabilirsiniz:

The type or namespace name 'OpenApiReference' could not be found

Sorun Nedir?

Swashbuckle 10.0+ sürümünde OpenApiReference sınıfı tamamen kaldırılmıştır. Bu breaking change, eski kodların derlenmesini engellemektedir.

Eğer projenizde güvenlik şeması tanımlarken aşağıdaki gibi bir yapı kullanıyorsanız, bu kod artık çalışmayacaktır:

// ❌ Bu kod Swashbuckle 10.0+ ile ÇALIŞMAZ c.AddSecurityRequirement( new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference // <- Bu sınıf kaldırıldı! { Type = ReferenceType.SecurityScheme, Id = "Bearer" } }, new string[] { } } });

Çözüm

Swashbuckle 10.0+ ile birlikte OpenApiSecuritySchemeReference adında yeni bir constructor-based yaklaşım getirilmiştir. Kodunuzu aşağıdaki gibi güncellemeniz gerekmektedir:

// ✅ Swashbuckle 10.0+ için doğru kullanım c.AddSecurityRequirement( new OpenApiSecurityRequirement { { new OpenApiSecuritySchemeReference("Bearer"), new string[] { } } });

Geçiş Adımları

Adım 1: Mevcut Kodunuzu Bulun

Program.cs veya Swagger extension dosyalarınızda OpenApiReference kullanımlarını arayın.

Adım 2: Yeni Yapıya Geçin

OpenApiReference kullanan tüm güvenlik şeması tanımlarını OpenApiSecuritySchemeReference constructor'ı ile değiştirin.

Adım 3: Test Edin

Uygulamanızı çalıştırın ve Swagger UI'ın doğru yüklendiğinden ve yetkilendirme kilit simgesinin göründüğünden emin olun.

Sonuç

Bu değişiklik, Swashbuckle'ın OpenAPI 3.1 standartlarına daha uyumlu hale gelmesi için yapılmıştır. Yeni yaklaşım daha temiz ve anlaşılır bir API sunmaktadır.

Etiketler

.NET 10SwashbuckleSwaggerAPIC#

Yazar

Pixelance Ekibi

Pixelance

Diğer Yazıları Görüntüle