Emircan Erkul
Emircan Erkul
5 Dakika Okuma Süresi
Coupled vs Decoupled

Yukarıda görselde görüldüğü üzere drupal başlıca iki farklı şekilde kullanılmaktadır. Bunlardan çoğunlukla kullanılan coupled yönteminde Drupal, Twig Template Engine kullanarak web sayfa sunucusu olarak çalışmaktadır

Uzun vakit alabilecek API geliştirme sürecini kolaylaştıran Drupal ile geliştirmek istenilen API bir diğer yöntem olan Decoupled yöntemi ile çok daha hızlı geliştirilebilmektedir. Drupal ile oluşturulmuş içeriğe harici uygulamalardan erişmek üzere kullanılan bu yöntemin geliştiriciler tarafından tercih edilme nedenleri başlıca şu şekilde sıralanabilir;

  • Hızlı: Drupal birçok özelliği halihazırda içerisinde barındırdığından dolayı API geliştirme sürecinde tekrar bu özelliklerin geliştirilme gereksinimini ortadan kaldırmaktadır.
  • Kolay: Hiçbir kodlama bilgisine dahi ihtiyaç duymadan drupal yönetim panelinden API oluşturulabilir.
  • Kapsamlı: Drupal'ın tüm özelliklerine bu yöntem ile erişilebilir.

Drupalın sağladığı avantaj, API'leri kolayca oluşturmanın yanı sıra başlıca erişim denetleme, önbellekleme, istatistik ve içerikleri oluştururken sağlanan kullanıcı deneyimidir.

Drupal decoupled olarak kullanılacak drupal yapısı tasarlanmadan önce bu yapı ile oluşturmak istenen api yöntemi belirlenmelidir. SOAP, REST ve GraphQL olmak üzere daha bir çok yöntem bulunmaktadır.

API, Rest yöntemi ile geliştirilmek istenirse Drupal 8'de hali hazırda Serialization modulü ile birlikte ilgili modül gelmektedir. Bu modül sayesinde view yapısı da kullanılarak kolayca API endpoint'leri oluşturulabilir.

Rest yöntemi kullanarak geliştirilecek api sadece tanımlandığı şekilde veri çıktısı oluşturabilir.

Örneğin satılık araçlar viewinden veri alındığını varsayalım. Projenin ilerleyen zamanlarında aracı satan kişinin telefon numarasına gerek kalmadığı durumda, hali hazırda telefon numara verisini kullanan uygulama kullanıcılara sunulduğundan dolayı ilgili viewde doğrudan düzenleme yapılması durumunda henüz uygulamasını güncelleştirmemiş olan kullanıcıların uygulamaları istenilen şekilde çalışmayabileceğinden dolayı kullanıcı kaybına neden olabilecektir. Api'lerde versyonlama işlemleri yapılarak bu sorunun üstesinden gelinebilinsede bu çözüm maaliyetli olabilmektedir.

Facebook tarafından geliştirilmiş olan GraphQL bu sorunu gidermek için geliştirilmiş bir yöntemdir. Bu yöntem ile çıktısı alınacak veri client tarafından belirlenmektedir. Bu sayede birçok uygulama veya sürümde istenilen ve sadece gerek duyulan veriler kolayca alınabilmektedir.

RESTful Web servisi geliştirmek için Drupal 8 ve üzerinde hali hazırda yüklü olarak gelen ve aktif edilmeyi bekleyen RESTful Web Services modülü kurulmalıdır. Bu modülün kurulabilmesi için öncelikle Serialization modülün aktif olduğuna emin olunulmalıdır.

Rest Export Setting

Ardından Structure altında bulunan sekmeden yeni bir View oluşturulmalı ve yukarıda resimde görüldüğü üzere Rest Export Settings sekmesi altında bulunan özellik aktif edilerek kullanılmak istenilen yol belirtilmelidir (Örn: /api/v1/cars).

Rest Export Style Options

View format ayarlarında bulunan json ve/veya xml seçeneğinin seçilmesinin ardından API tanımlanan adreste kullanıma hazır olacaktır. Drupal viewlerin kapsamlı özellikleri sayesinde oluşturulan apilerin sağladığı veriler kolayca başka alanlarla ilişkililendirilerek zenginleştirilebilir. Sıralama, filtreleme, sayfalama, güvenlik kontrolü ve parametre bazlı sonuç gibi bir çok düzenleme view bölümünden yapılabilmektedir

Bir API Endpoint oluşturmak işte bu kadar kolay. Şimdi tek yapılması gereken Drupal’ın kullanıcı dostu olan yönetim panelinden içerik girmek.

Sonraki yazımda Amazon Web Servislerinden Lightsail kullanarak dakikalar içerisinde Bitnami Drupal 9 nasıl kurulur buna değinilecektir.

Yazılarımızdan anında haberdar olmak için aşağıda bulunan alandan mail listemize kayıt olabilir ve bizleri sosyal medya hesaplarımızdan takip edebilirsiniz.