Ana içeriğe atla

Decoupled Drupal ile Api Geliştirme

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.
Emircan Erkul
Emircan Erkul
5 dakika okuma süresi
decoupled-drupal-ile-api-gelistirme

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.
Görsel kaldırıldı.

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.

Görsel kaldırıldı.

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).

Görsel kaldırıldı.

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.

Ofislerimiz

Drupart Locations

Ofislerimiz

Drupart AR-GE

GOSB Teknopark Hi-Tech Bina 3.Kat B3 Gebze - KOCAELİ

+90 262 678 8872

+90 216 706 12 58 

[email protected]

Londra

151 West Green Road, London, England

+44 203 815 6478

[email protected]

Newark

112 Capitol Trail Suite, A437 Newark DE, 19711

+1 (740) 666 6255

[email protected]

Wiesbaden

Hinterbergstraße 27
65207 Wiesbaden
Deutschland

+49 (0) 6151 – 492 70 23

[email protected]