Drupal 8 ile GraphQL: Bilmeniz Gereken Her Şey Kılavuzu (örneklerle!)
Yayınlanan: 2019-12-17GraphQL, HTTP'de Drupal ile konuşur ve çıktılar her zamankinden daha fazla yapılandırılmıştır!
Bugün, harika müşteri deneyimleri harika içerikle başlıyor. Her yerde kullanıma sunulan içerik. Drupal 8'in API öncelikli girişimi ile Drupal tarafından yönetilen içerik, HTTP üzerinden diğer sistemler tarafından kolayca kullanılabilir. REST (Temsili Durum Aktarımı), API'ler için bir tasarım standardı sağlar. Ancak, istemci uygulamalarının daha karmaşık ve zorlu hale gelmesiyle birlikte geliştiricilerin daha modern ve etkili bir çözüme ihtiyacı var.

GraphQL, daha esnek ve güçlü bir istemci-sunucu etkileşimi talebinden doğdu. Sofistike bir sorgulama dili ve bir yürütme makinesidir. 2012'de Facebook, başsız uygulamalar için yeteneklerini ve veri modellerinin gereksinimlerini açıklayan spesifikasyonu oluşturdu.
GraphQL nedir?
GraphQL, API'ler için uyarlanabilir bir standarttır ve bu sorguları yerine getirmek için bir çalışma zamanı sağlar. GraphQL, API'nizdeki bilgilerin eksiksiz ve makul ayrıntılarını verir. "İhtiyacınız olanı isteyin ve tam olarak onu alın" ideolojisi ile geliştirilmiştir. İstemciye, API'den tam olarak ihtiyaç duydukları yanıtı alması için yetki verir, daha fazlası değil - daha azı değil.
GraphQL Avantajları
Drupal için GraphQL kullanmanın birçok avantajından birkaçı -
- Daha hızlı ön uç geliştirme
Yeni arka uç uç noktalarını beklemeden uygulamaları hızla vurgulayın. Verileri ihtiyacınız olan şekle sokarak veri alma ve kod bakımını iyileştirin. - Neye ihtiyacınız olduğunu sorun ve tam olarak bunu alın
Müşterinin istediği tam yanıtı sağlar. Her zaman öngörülebilir sonuç döndürür. GraphQL kullanan uygulamalar da kararlıdır çünkü uygulama aldığı verileri sunucuyu değil kontrol eder. - Mevcut verilerinizi kullanın
GraphQL, REST, SOAP veya mevcut veritabanı veya başka herhangi bir şey gibi mevcut herhangi bir altyapı ile kullanılabilir. Tüm verileri tek bir istekte sorgulamanıza olanak tanır ve size temiz, öngörülebilir bir yanıt sağlar. - Daha az bayt ve gidiş dönüş
GraphQL kullanılarak gerekli tüm veriler tek bir sorgu kullanılarak alınabilir. yapar
uygulama daha hızlı.

Drupal 8 ile GraphQL
REST vs JSON:API vs GraphQL
Bu üçünü istek verimliliğine göre karşılaştırırsak, JSON:API ve GraphQL mükemmeldir. Çünkü tek bir istekte JSON:API ve GraphQl gerekli tüm yanıtları sunabilir. JSON:API durumunda, bazen yanıtı uyarlamamız gerekir, ancak GraphQL söz konusu olduğunda, yalnızca ihtiyacımız olana hizmet eder. REST, bunlara kıyasla daha yavaştır, çünkü ortak ihtiyaçlara hizmet etmek için birden fazla istek gerekir.
Operasyonel basitlik ve uygulama açısından REST en kolayıdır, bir süredir orada. JSON:API ayrıca CDN ve ters proxy'lerle kutudan çıktığı gibi çalışır. GraphQL için ekstra altyapı gereklidir ve bunu uygulamak için istemci kitaplıkları gereklidir.
GraphQL ile karşılaştırıldığında, REST ve JSON:API'de web önbelleğini kullanmak daha kolaydır. GraphQL'de, tüm sorguların gönderildiği yalnızca bir uç nokta (çoğu zaman bir HTTP POST uç noktası) vardır. Her sorgu farklı olabileceğinden, bu tür önbelleklemeyi kullanmak daha zordur.
Drupal GraphQL belirtimi, halihazırda uyguladığınız mutasyonlar için toplu/toplu işlemleri otomatik olarak desteklerken JSON:API belirtimi desteklemez. Toplu yazma işlemlerini gerçekleştirme yeteneği önemli olabilir.
Drupal 8 için GraphQL Kurulumu
Drupal GraphQL modülü, tüm GraphQL özelliklerini destekler ve GraphQL şemalarını oluşturmak ve ortaya çıkarmak için kullanılabilir. Drupal 8 modülünün 8.x-4 sürümündeki en son alfa sürümü, Drupal modüllerinin şemayı bir eklenti ile genişletmesi için bir yetenek sunar.
Drupal GraphQL modülünü şu adresten kurabilirsiniz - https://www.drupal.org/project/graphql
Composer komutunu kullanarak kurulum yapabilirsiniz.
besteci 'drupal/graphql:^3.0' gerektirir
Size iki modül GraphQL Core ve GraphQL sağlayacaktır . Her iki modülü de etkinleştirmeniz gerekir. Örneğin, drush kullanarak etkinleştirebilirsiniz.
drush en graphql drush en graphql_core
Drupal GraphQL ile Sorgular
Drupal GraphQL modülü, GraphiQL adlı bir araç sağlar. Güçlü bir araçtır ve otomatik tamamlama gibi işlevlere sahip etkileşimli bir kullanıcı arayüzüne sahiptir. Bu aracı kullanarak sorgular çalıştırabilir ve çıktılar alabilirsiniz. Arayüz için – “ /graphql/explorer ” konumuna gidin.
Şuna benzeyen bir kullanıcı arayüzü alacaksınız –

GraphiQL Kullanıcı Arayüzü
Bu UI'nin sol paneline bir sorgu yazabilirsiniz ve sağ tarafta sonuçları JSON formatında çıktı olarak göreceksiniz. Sağ üst köşedeki Dokümanlar'a tıklamak, mevcut sorguların belgelerini size ulaştıracaktır. Sorgu değişkenlerini iletmek için sol alt paneldeki Sorgu Değişkeni bölümü kullanılabilir.

Örnekler
1.Sorgulama Düğümleri

Drupal GraphQL - Düğümleri Sorgulama
2. Taksonomileri Sorgulamak

Drupal GraphQL - Taksonomileri Sorgulama
3. Rota Sorgulama

Drupal GraphQL - Yolları Sorgulama
4. Sorgu Parçaları

Drupal GraphQL - Sorgu Parçaları
5. Filtreler

Drupal GraphQL - Filtreler
6. Bağlantılı filtreler

Drupal GraphQL - Bağlantılı Filtreler
Diğer mevcut operatörler şunlardır:
- EŞİT
- EŞİT DEĞİLDİR
- DAHA KÜÇÜK
- SMALLER_THAN_OR_EQUAL
- BÜYÜK_THAN
- GREATER_THAN_OR_EQUAL
- İÇİNDE
- DEĞİL
- BEĞENMEK
- GİBİ DEĞİL
- ARASINDA
- ARASINDA DEĞİL
- IS_NULL
- IS_NOT_NULL
Bağlaçların iki değeri olabilir
- VE
- VEYA
Daha karmaşık sorgular yazmak için Gruplar'ı da kullanabilirsiniz.
7.GraphQL değişkenleri

Drupal GraphQL - Değişkenler
mutasyonlar
GraphQL'de mutasyon, sunucuda depolanan verileri eklemek, değiştirmek veya silmek istediğinizde kullanılan terminolojidir. Bu durumda, Drupal. Ne yazık ki, modül, GraphQL'nin bazı teknik gereksinimlerinden dolayı kutudan çıktığı gibi yaygın mutasyonları gerçekleştirmenin bir yolunu içermiyor.
Oluşturma, silme, güncelleme ve dosya yüklemeleri için örnek kod burada bulunabilir: https://github.com/drupal-graphql/graphql-examples
Örnek mutasyon:

Drupal GraphQL - Mutasyon örneği
Dal ile Drupal GraphQL
Drupal GraphQL'i Twig ile kullanmak web sitenizin performansını önemli ölçüde artırabilir. İşte nasıl - Twig şablonuna veri enjekte ettiğinizde, tek bir API çağrısı kullanarak gerekli tüm verileri getirebilirsiniz. Ayrıca, aldığı verileri sunucu değil istemci kontrol ettiği için süreci daha da hızlı hale getirir.
Drupal GraphQL'i Twig ile kullanmak için GraphQL Twig modülüne ihtiyacımız var. İndirmek ve etkinleştirmek için aşağıdaki komutları kullanın:
besteci 'drupal/graphql_twig:^1.0' gerektirir drush en graphql_twig
Ardından web sitenizde GraphQL sorgusunu kullanabilirsiniz, örneğin
{#graphql
sorgu {
admin:userById(id: "1") {
kullanıcı kimliği
isim
}
kullanıcı:currentUserContext {
kullanıcı kimliği
}
}
#}Yanıt verilerini GraphQL değişkeninde alacaksınız.
