Ana içeriğe atla

Drupal JSON:API Modülüne Genel Bakış

Drupal 10 JSON:API Modülü - Drupal ekosisteminde API'lar oluşturmanın güçlü ve standartlaştırılmış yolu. JSON:API'nin temellerini, yapılandırmayı ve API ile etkileşimi keşfedin.
10 dakika okuma süresi
icerik-yonetim-sistemi-cms-secimi

JSON:API güçlü ve standartlaştırılmış bir API spesifikasyonudur. Drupal core, Drupal 8 ve sonraki sürümlerde JSON:API spesifikasyonunu uygulayan 'JSON:API' adlı bir modül sağlar. Bu modül, Rest Web Service modülü gibi diğer yöntemlere ek olarak Drupal ekosistemi içinde API'ler oluşturmak için kolay bir yol sunar.

JSON:API nedir?

JSON:API, istemci uygulamalarının bir sunucudan nasıl kaynak talep edebileceğini ve alabileceğini tanımlayan bir API spesifikasyonudur. İstekleri ve yanıtları yapılandırmak için bir dizi kuralı takip ederek geliştiricilerin API ile etkileşime girmesini kolaylaştırır. Spesifikasyon tutarlılık sağlar, veri alımını basitleştirir ve API'ler oluşturulurken özel yapılandırmalara olan ihtiyacı azaltır.

JSON:API hakkında daha ayrıntılı bilgi için jsonapi.org adresindeki dökümantasyonu inceleyebilirsiniz.

Şimdi, Drupal'da bir JSON:API oluşturmak için gerekli adımları inceleyelim:

JSON:API Modülünü Etkinleştirme

Başlamak için, Drupal web sitenizin JSON:API modülünün etkinleştirildiğinden emin olun. Neyse ki, bu modül Drupal 8 ve sonraki sürümlerde çekirdek bir modül olarak dahil edilmiştir, bu nedenle ekstra uzantıları yüklemenize gerek yoktur.

Modülün etkinleştirilip etkinleştirilmediğini doğrulamak için Drupal yönetim menüsünde "Modüller" bölümüne gidin ve JSON:API modülünün listelendiğini ve etkinleştirildiğini kontrol edin. Eğer etkinleştirilmemişse, buradan etkinleştirebilirsiniz.

JSON:API Modülünün Yapılandırılması

Drupal'daki JSON:API modülü varsayılan olarak sınırlı yapılandırma seçenekleri sunar ve temel olarak izin verilen işlemleri düzenlemeye odaklanır.

Bununla birlikte, API yolları, kaynak sayıları veya içerikler için varsayılanlar gibi kaynak özelliklerini değiştirme ihtiyacı duyduğunuzda veya alanları veya kaynakları devre dışı bırakmak için bir arayüz istediğinizde, JSON:API Extras modülünü kullanabilirsiniz. JSON:API Extras, JSON:API modülünün işlevlerini genişleterek API'nizin işlevselliğini özel proje gereksinimlerinize daha iyi uyacak şekilde özelleştirmek için ek özellikler ve esneklik sağlar.

JSON:API-extras-module-configuration-page

JSON:API kullanımı

JSON:API modülünü etkinleştirip yapılandırdıktan sonra, yeni oluşturduğunuz API'yi test etme ve onunla bağlantı kurma zamanı gelmiştir

Kaynakları okuma

Örnek URL: http://localhost/jsonapi/node/article

Bu URL, JSON:API kullanarak article node kaynak türünden veri getirecek ve sonuçları JSON:API belirtim biçiminde görüntüleyecektir. Belirtilen URL kalıbını takip ederek ve node/article kısmını değiştirerek, diğer kaynak türlerine erişebilirsiniz.

JSON:API-postman-request-response
CRUD İşlemleri için Kimlik Doğrulama

JSON:API ile etkileşim kurmak Postman veya cURL gibi araçlar kullanılarak mümkündür. Varsayılan olarak, bu araçlarla istekte bulunurken, kullanıcı kimlik doğrulamasını otomatik olarak yapmadıkları için kullanıcı Anonymous user olarak kabul edilir. Bu durum, Drupal yapılandırmanızda anonim kullanıcılara verilen izinlere bağlı olarak belirli kaynaklara erişimi sınırlandırabilir.

Ancak, JSON:API aracılığıyla kaynak oluşturmayı, güncellemeyi veya silmeyi düşünüyorsanız yalnızca anonim izinler yeterli olmayacaktır. Bu işlemler için kullanıcı kimlik doğrulaması gereklidir. Drupal, farklı modüller aracılığıyla çeşitli kimlik doğrulama mekanizmaları sunar ve yaygın olarak kullanılan yöntemlerden biri Drupal core'da bulunan HTTP Basic Auth modülü'dür. Ayrıca, Drupal REST & JSON API Authentication gibi daha kapsamlı modüller ek kimlik doğrulama yöntemleri ve özelleştirme seçenekleri sağlayabilir.

Kimliği doğrulanmış bir istek yapmak için adımlar

  1. Bu örnek için tüm işlemlerin etkinleştirildiğinden emin olun
  2. HTTP Basic Authentication modülünü etkinleştirin
  3. API Kullanıcısı için bir rol oluşturun
  4. Rol için gerekli izinleri verin. /admin/people/permissions/api_user
  5. Bu örnek için *Article*: Create new content iznini verdiğinizden emin olun.
  6. API Kullanıcısı iznine sahip bir kullanıcı oluşturun. /admin/people/create
  7. Postman'da yetkilendirme yapılandırın. Yeni oluşturulan hesabı kullanın

  8. Content-Type header'ını application/vnd.api+json değeri ile ekleyin
  9. Gövdeyi güncelleyin:

    {         "data": {           "type": "node--article",           "attributes": {             "title": "This page is created trough JSON:API",             "body": {               "value": "some body text",               "format": "plain_text"             }           }         }        }

  10. İsteği gönderin ve yanıtı gözlemleyin. Durum kodu 201 ise, JSON:API'nize başarıyla kimliği doğrulanmış bir istekte bulundunuz ve article türünde bir node oluşturdunuzarticle-node-created

Sonuç Olarak

JSON:API, Drupal'da API oluşturmayı kolaylaştıran güçlü ve standartlaştırılmış bir API spesifikasyonudur. Drupal 8 ve sonraki sürümlerde bir core modül olarak sorunsuz entegrasyonu, geliştiricilere standartlaştırılmış bir API arayüzü sağlayarak özel yapılandırma ihtiyacını azaltır. JSON:API modülünü etkinleştirerek, belirli URL kalıpları ve JSON:API spesifikasyon formatını kullanarak Drupal web sitenizin verileriyle zahmetsizce etkileşim kurabilirsiniz.

JSON:API modülünün daha fazla kullanımı ve ek yeteneklerini keşfetmek için Drupal JSON:API Modülü Dokümantasyonunu inceleyebilirsiniz. Bu kapsamlı dokümantasyon, sayfalama, sıralama, dosya yükleme ve diğer ayrıntılar dahil olmak üzere gelişmiş özellikler hakkında değerli bilgiler sunar.

Referanslar ve Ek Kaynaklar

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]