Aracılığıyla paylaş


JavaScript geliştiricileri için Azure'da GraphQL

GraphQL, JavaScript uygulamalarınızın tek bir istekle tam olarak ihtiyaç duydukları verileri almasına yardımcı olur. Bu makalede GraphQL'in ne olduğu, neden kullanabileceğiniz ve Azure hizmetlerinin en az çabayla GraphQL uygulamaları oluşturmanıza nasıl yardımcı olabileceği açıklanmaktadır. Mevcut bir GraphQL uygulamasını geçirirken veya yeni bir uygulama oluştururken Azure, süreci basitleştirmek için araçlar ve hizmetler sağlar.

GraphQL nedir?

GraphQL, web uygulamanızın sunucularla ve veritabanlarıyla iletişim kurması için modern bir yoldur. Tam olarak ihtiyacınız olan bilgileri istemenin daha akıllı bir yolu olarak düşünün:

  • Sabit bir menüyü kabul etmek yerine özel bir yemek sipariş etmek gibidir. Tam olarak ne istediğinizi sorarsınız
  • React, Vue veya Angular gibi JavaScript uygulamalarıyla iyi çalışır
  • Web uygulamalarınızı daha hızlı ve daha kolay oluşturulabilir hale getirebilir

GraphQL, farklı sunucu uç noktalarına birden çok istek göndermek yerine (geleneksel REST API'leri gibi) çoğu web hizmeti iletişiminin standart yoludur. GraphQL, ihtiyacınız olan tüm verileri almak için tek bir hassas istekte bulunmanıza olanak tanır.

Neden web uygulamamda GraphQL kullanmak isteyeyim?

GraphQL, JavaScript uygulamalarınızı üç ana yolla daha iyi hale getirir:

  • Tam olarak ihtiyacınız olanı alın: Uygulamanız şu anda yalnızca ihtiyaç duyduğu verileri isteyebilir - ne daha fazla, ne de daha az. Bu, devasa ve çoğunlukla israf olan sabit bir yemek yerine bir büfeye gidip sadece yiyeceğinizi almak gibidir. Bu, uygulamanızın daha az veri indirdiği için daha hızlı olmasını sağlar.

  • Çok yerine tek bir istek: Birden çok yerden bilgi mi gerekiyor? GraphQL, 5 farklı uç noktaya 5 farklı istekte bulunmak yerine her şeyi almak için tek bir istekte bulunmanızı sağlar. Bu, beş farklı mağazaya gitmek yerine bir kişinin tüm alışverişlerinizi toplamasını sağlamak gibidir.

  • Daha iyi araçlarla daha az hata: GraphQL, uygulamanız çalışırken değil kodlama yaparken hataları yakalamaya yardımcı olan araçlarla birlikte gelir. Belgenizi yayımladıktan sonra yazım hatalarını bulmak yerine, siz yazarken yazım denetimi yapmak gibi bir şey.

GraphQL ve JavaScript ile derleme yaparken büyük olasılıkla şu popüler araçlardan birini kullanacaksınız:

  • Apollo İstemcisi: React, Vue, Angular ve düz JavaScript ile çalışan en yaygın kullanılan GraphQL istemcisi.
  • URQL: İyi performansa sahip basit bir alternatif.
  • Relay: Facebook tarafından (ayrıca GraphQL'i de oluşturan) büyük React uygulamaları için en uygun şekilde geliştirilmiştir.

GraphQL uygulamaları için Azure hizmetleri

Kendi senaryonuza göre yaklaşımınızı seçin:

Şunu yapmak istiyorsanız... O zaman yapmalısın... Bu Azure hizmetlerini kullanma
Mevcut bir GraphQL uygulamasını Azure'a getirme Kodunuzu değiştirmeden uygulamanızı dağıtma Azure App Service veya Azure Container Apps
Mevcut verilerinize GraphQL ekleme Minimum kodlama ile verileriniz için GraphQL uç noktaları oluşturma Veri API'si oluşturucusu
GraphQL API katmanı oluşturma Mevcut API'ler üzerinde birleşik bir GraphQL arabirimi oluşturma Azure API Yönetimi ve GraphQL Dönüşümü

GraphQL uygulamalarını Azure'da barındırma

Oluşturduğunuz uygulama türüne bağlı olarak birkaç iyi seçeneğiniz vardır:

  • App Service: Bu, geleneksel bir web barındırma hizmeti gibidir, ancak ek özelliklere sahiptir. Sunucu gerektiren çoğu JavaScript uygulaması için harikadır.

  • Container Apps: Uygulamanız kapsayıcılarda (Docker gibi) paketlenmişse, bu hizmet çalıştırmayı ve ölçeklendirmeyi kolaylaştırır.

GraphQL uygulamaları için veri depolama

GraphQL'in verilerinize bağlanması gerekir. Azure bunu yapmanın çeşitli yollarını sunar:

  • Veritabanınızı GraphQL API'sine dönüştürün: "Veri API'si oluşturucusu" aracı, mevcut veritabanınızdan otomatik olarak bir GraphQL uç noktası (uygulamanızın GraphQL istekleri gönderebileceği bir URL) oluşturabilir; kodlama gerekmez!

  • Verilerinizi depolama: Azure farklı gereksinimler için veritabanları sunar:

    • SQL Veritabanı: Geleneksel tablo tabanlı veriler için
    • Cosmos DB: Katı şemalar olmadan esnek, ölçeklenebilir veri depolama için

GraphQL uygulamalarının güvenliğini sağlama

  • Kullanıcı oturum açma ve güvenlik: Azure'ın Kimlik platformu, yalnızca doğru kişilerin GraphQL verilerinize erişebilmesi için uygulamanıza oturum açma özellikleri eklemenize yardımcı olur.
  • Rol tabanlı erişim: GraphQL uç noktalarınız aracılığıyla hangi kullanıcıların hangi verileri sorgulayabileceğinizi veya değiştirebileceğini tam olarak denetleyin.
  • API koruması: GraphQL API'lerinizin kötüye kullanılmasını önlemek için hız sınırlama ve izleme ekleyin.

Mevcut verileriniz için GraphQL API'leri oluşturma

Azure'da zaten verileriniz var ve GraphQL ile verilere erişmek mi istiyorsunuz? Bunu yapmanın basit yolları vardır:

  • API Management: Bu hizmet, mevcut API'lerinizin veya veri kaynaklarınızın önünde bir GraphQL katmanı oluşturabilir. Bu, GraphQL'i yerel olarak konuşmayan sistemlere GraphQL çevirisi eklemek gibidir.

  • Data API Builder: Bu araç veritabanlarınızdan otomatik olarak GraphQL uç noktaları oluşturur. GraphQL'i mevcut verilerinize eklemenin en hızlı yoludur. Bunu veritabanınıza doğrultarak işinizi sizin yerinize yapar.

Basit bir örnek: Ürün veritabanı için GraphQL API'sini oluşturma

İşlem şu şekilde basit bir şekilde çalışır:

  1. Ürün bilgileri (adlar, fiyatlar, açıklamalar) içeren bir veritabanınız var
  2. Veritabanınıza bağlanmak için Data API Builder'ı ayarladınız
  3. Data API Builder otomatik olarak bir GraphQL uç noktası oluşturur
  4. JavaScript uygulamanız artık aşağıdaki gibi GraphQL sorguları yapabilir:
{
  products(where: { price_lt: 50 }) {
    name
    price
    description
  }
}

Bu sorgu, yalnızca adlarını, fiyatlarını ve açıklamalarını gösteren tüm ürünleri 50 ABD dolarının altına alır.

Başlamanıza yardımcı olacak kaynaklar

Daha fazla bilgi edinmek veya Azure'da GraphQL ile oluşturmaya başlamak istiyorsanız bazı yararlı kaynaklar şunlardır:

Sonraki Adımlar