ASP.NET Core

Başlangıç için GraphQL: GraphQL.NET ile .NET 10 Rehberi

Bu başlangıç rehberi GraphQL şema, query, mutation ve resolver kavramlarını anlatır ve GraphQL.NET ile ASP.NET Core ve .NET 10 üzerinde çalışan bir endpoint kurar. Aynı ürün okumasını REST endpoint'iyle karşılaştırır ve doğrulama hatalarının HTTP 200 ile errors dizisi olarak nasıl döndüğünü gösterir. GraphQL'i değerlendiren .NET ekipleri için sunucu tarafı sorumlulukları açısından faydalı.

DEV Community: #aspnetcore Lincoln Zocateli
Yayın tarihi
Okuma süresi
17 dk okuma
agent çalıştırması #13
agent çalıştırması #13
Orijinale git dev.to

Bu haberi bildir

Özette bir hata mı var, ya da bu içeriğin sahibi misin? Mesajın doğrudan bana e-posta olarak gelir.

Mesaj türü

Kilit noktalar

  • GraphQL.NET 8.8.5 ile AddGraphQL().AddSchema<ProdutoSchema>().AddSystemTextJson() çağrısıyla schema DI'a kaydedilir.
  • app.UseGraphQL<ProdutoSchema>("/graphql") ile endpoint eşlenir; query'ler variables alanıyla JSON POST gövdesi olarak gönderilir.
  • Doğrulama hataları HTTP 200 ve errors dizisiyle döner; yalnızca durum koduna değil yanıt gövdesine bakın.
  • Birden fazla parametreli mutation'lar için CreateProductInput gibi input object kullanın ve servisi çağırmadan önce doğrulayın.
  • Resolver'ları ince tutun; liste alanı her öğe için ayrı sorgu tetikliyorsa (N+1) DataLoader ekleyin.
  • Örnek veriyi bellekte tutar ve kimlik doğrulama içermez; üretimden önce yetkilendirme, sorgu derinliği/maliyet limiti ve sayfalama ekleyin.

GraphQL bir sorgu dili ve tipli şema üzerinde çalışan bir çalıştırma spesifikasyonudur; JSON ya da HTTP ile eşanlamlı değildir. Portekizce yazılmış bu rehber, ASP.NET Core ve .NET 10 üzerinde GraphQL.NET 8.8.5 ve AspNetCore transport 8.3.3 ile çalışan bir endpoint kurmayı, şema, type, query, mutation, input object ve resolver kavramlarını ve aynı bellek içi ürün verisini REST endpoint'iyle karşılaştırmayı anlatıyor.

Asıl mesaj, esnekliğin işi sunucuya taşıdığı. Yetkilendirme, doğrulama, sorgu limitleri, sayfalama ve verimli veri erişimi hâlâ backend'in sorumluluğunda; liste alanlarında N+1 sorunu ortaya çıkabilir ve bunun için DataLoader gerekir. Doğrulama hatasında yanıt HTTP 200 dönüp errors dizisi içerdiğinden istemciler yalnızca durum koduna değil gövdeye de bakmalı. Örnek bellek içi çalıştığı ve kimlik doğrulama içermediği için üretim öncesi bir başlangıç noktası olarak değerlendirilmeli.

Gerçek dünyada kullanımı

  • Ürün ekranında ürün, fiyat ve kategoriyi birden çok REST çağrısı yerine tek istekte isteyen bir mobil uygulama.
  • Aynı sipariş verisinden farklı alan kombinasyonları isteyen farklı istemcilerin bulunduğu bir yönetim paneli.
  • Herkese açık bir API'de iç içe pahalı sorguları derinlik veya maliyet limitiyle sınırlaması gereken bir servis.

Neden önemli

GraphQL alan seçimini istemciye verdiği için .NET ekipleri benimsemeden önce yetkilendirme, sorgu limitleri ve N+1 önleme sorumluluğunu sunucuda üstlenmeli.

Bu özet, DEV Community: #aspnetcore üzerindeki orijinal yazıdan agent tarafından üretildi. Yazının tamamı ve tüm hakları ilgili yazara/yayıncıya aittir. Orijinal yazıya git

Benzer haberler

Geri bildirim

Bir hata mı buldun, bir fikrin mi var? Yazdığın mesaj doğrudan bana e-posta olarak gelir.

Mesaj türü