WordPress REST API ile Sitenizi Mobil Uygulamaya ve Diğer Sistemlere Bağlamak
WordPress sitenizdeki ürün, fiyat ve içerikleri ikinci kez girmeden mobil uygulamada göstermek mümkün. Bunun anahtarı WordPress REST API.
İçindekiler
WordPress ile yönettiğiniz bir siteniz var ve aynı içerikleri bir mobil uygulamada, bir bayi ekranında ya da başka bir yazılımda göstermek istiyorsunuz. Her şeyi iki ayrı panelde girmek hem zaman kaybı hem de hata kaynağıdır. WordPress REST API, sitenizdeki verileri standart bir biçimde dış dünyaya açarak tek panelden yönetilen içeriğin her yerde kullanılmasını sağlar. Bu yazıda hazır gelen özellikleri, ne zaman özel uç nokta yazmak gerektiğini ve güvenlik tarafında dikkat edilmesi gerekenleri anlatıyorum.
WordPress REST API nedir, ne işe yarar?
WordPress, uzun süredir çekirdeğinde bir REST API barındırır. Siteniz yalnızca tarayıcıya HTML sayfa göndermekle kalmaz; belirli adreslere gelen isteklere yazı, sayfa, kategori, medya gibi verileri JSON biçiminde döndürebilir. JSON, mobil uygulamaların ve diğer yazılımların kolayca okuyabildiği yapılandırılmış bir veri biçimidir.
Pratikte bu şu anlama gelir: Flutter ile yazılmış bir uygulama sitenizden son haberleri, ürünleri veya fiyatları çeker ve kendi arayüzünde gösterir. İçeriği siz yine alışık olduğunuz WordPress panelinden girersiniz. Uygulamanın arka uç ihtiyaçlarını daha geniş açıdan merak ediyorsanız mobil uygulama backend yazısına bakabilirsiniz.
Hazır uç noktalar neler sunar?
Kurulum yapmadan kullanabileceğiniz temel uç noktalar şunlardır:
- Yazılar ve sayfalar: Başlık, içerik, özet, yayın tarihi, öne çıkan görsel bilgisi.
- Kategoriler ve etiketler: İçerikleri gruplamak ve filtrelemek için.
- Medya: Görsellerin adresleri ve farklı boyutları.
- Özel yazı türleri: Doğru ayarla kayıt edilmişlerse (ör. ilanlar, projeler, ekip üyeleri) onlar da API’de görünür.
- Kullanıcılar: Sınırlı bilgilerle; yetkisiz erişime kapalı tutulması gereken bir alan.
WooCommerce kullanıyorsanız ürün, sipariş ve müşteri verileri için ayrı ve yetkilendirme isteyen bir API katmanı da vardır. Bu katman, stok ve sipariş senkronizasyonu gibi işlerde sık kullanılır.
Ne zaman özel uç nokta yazmak gerekir?
Hazır uç noktalar genel amaçlıdır ve çoğu zaman uygulamanın ihtiyacından fazlasını ya da eksiğini döndürür. Örneğin bir emlak uygulaması için tek istekte fiyat, metrekare, oda sayısı ve konum bilgisini isteyebilirsiniz; hazır uç nokta bunları özel alanlar arasında dağınık biçimde verir. Böyle durumlarda temaya ya da eklentiye özel bir uç nokta eklenir.
Aşağıda, yalnızca okunabilir bir fiyat listesi döndüren basit bir özel uç nokta örneği görüyorsunuz:
add_action('rest_api_init', function () {
register_rest_route('firma/v1', '/fiyatlar', [
'methods' => 'GET',
'callback' => 'firma_fiyat_listesi',
'permission_callback' => '__return_true',
]);
});
Buradaki permission_callback satırı önemlidir: herkese açık bir veri için açıkça “herkes okuyabilir” demek, yazma veya kişisel veri döndüren uç noktalar içinse gerçek bir yetki kontrolü yazmak gerekir. Adresteki v1 ise ileride kırıcı değişiklik yapmanız gerektiğinde işinizi kolaylaştırır; bu konuyu API versiyonlama yazısında ayrıca anlattım.
Gerçek bir örnek: fiyat eklentisi ve mobil uygulama
Bu yapıyı somut olarak altın fiyatları eklentisi ve mobil uygulamasında kullanıyorum. Kuyumcunun WordPress sitesindeki eklenti canlı altın, sarrafiye ve ons fiyatlarını kısa kodlarla sayfalarda gösteriyor. Aynı eklenti verileri önbellekli bir REST API üzerinden de sunuyor; Flutter ile yazılan mobil uygulama da bu API’den besleniyor. Kaynak geçici olarak erişilemezse API son geçerli fiyatı döndürüyor, böylece hem site hem uygulama boş kalmıyor.
Bu kurgunun işletmeye faydası basit: fiyat ve içerik tek yerden yönetiliyor, site ile uygulama her zaman aynı veriyi gösteriyor.
Güvenlik ve performans için dikkat edilmesi gerekenler
- Yazma işlemlerini kimlik doğrulamaya bağlayın: İçerik ekleyen, sipariş oluşturan veya kullanıcı verisi döndüren uç noktalar yetkisiz isteklere kapalı olmalıdır. Uygulama parolaları veya token tabanlı yöntemler bu iş için kullanılır.
- Gereksiz bilgiyi kapatın: Kullanıcı listesi gibi uç noktalar saldırganlara kullanıcı adlarını verebilir; ihtiyaç yoksa kısıtlanmalıdır.
- Yanıtları önbelleğe alın: Herkese aynı olan veriler için önbellek, sunucu yükünü belirgin biçimde azaltır.
- Yalnızca gerekli alanları döndürün: Mobil bağlantılarda küçük yanıt, hızlı uygulama demektir.
- İstek sınırı koyun: Kötü niyetli veya hatalı bir istemcinin sunucuyu yormasını engeller.
Genel API güvenliği ilkelerini API güvenliği yazısında daha geniş ele aldım.
Headless WordPress ne demek?
Bir adım ötesi, WordPress’i yalnızca içerik paneli olarak kullanıp ön yüzü tamamen ayrı bir teknolojiyle (ör. Next.js) yazmaktır. Buna “headless” yapı denir. Her proje için gerekli değildir; yalnızca mobil uygulamaya veri vermek istiyorsanız klasik WordPress sitesi ile REST API birlikte gayet iyi çalışır. Headless yapının artılarını ve ek bakım yükünü headless CMS yazısında karşılaştırmalı olarak anlattım; karar vermeden önce ekibinizin bu yapıyı yönetip yönetemeyeceğini de hesaba katmanızı öneririm.
Bu işi nasıl birlikte yaparız?
WordPress sitenizi bir uygulamaya veya başka bir yazılıma bağlamak istiyorsanız süreç genellikle şöyle ilerliyor:
- Veri ihtiyacını belirleme: Uygulamanın hangi ekranda hangi veriyi göstereceğini, hangi verinin değiştirilebileceğini birlikte listeliyoruz.
- Uç nokta tasarımı ve teklif: Hazır uç noktaların yetip yetmediğine bakıyor, gerekirse özel uç noktaları ve yetki kurallarını tanımlayıp kapsamı yazılı hâle getiriyorum.
- Geliştirme ve test: Uç noktaları, önbelleği ve yetkilendirmeyi kurup uygulama tarafıyla birlikte test ediyorum.
- Teslim ve destek: Dokümantasyonla birlikte teslim ediyor, WordPress güncellemelerinden sonra uyumluluğu takip ediyorum.
Projenizi anlatmak için iletişim sayfasını kullanabilirsiniz.
Sık sorulan sorular
WordPress REST API için ek eklenti kurmam gerekir mi?
Temel özellikler WordPress çekirdeğinde hazır gelir. Özel veri yapıları ve yetkilendirme senaryoları için tema veya eklenti içinde ek kod yazılması gerekebilir.
REST API açık olduğu için sitem güvensiz mi olur?
Hayır. Varsayılan olarak yalnızca herkese açık içerikler okunabilir. Yazma işlemleri yetki ister. Yine de gereksiz uç noktaları kısıtlamak ve özel uç noktalarda yetki kontrolünü doğru yazmak gerekir.
Mevcut sitemi bozmadan uygulama ekleyebilir miyim?
Evet. REST API, mevcut sayfalarınızı değiştirmeden çalışır. Uygulama yalnızca veriyi okur; site ziyaretçileriniz hiçbir fark görmez.
WooCommerce siparişleri de uygulamaya taşınabilir mi?
WooCommerce’in kendi API katmanıyla ürün, sipariş ve müşteri verilerine yetkili erişim sağlanabilir. Bu tür entegrasyonlarda güvenlik ve yetki ayrımı özellikle dikkatle kurgulanmalıdır.
Sonuç
WordPress REST API, içeriğinizi bir kez girip sitede, mobil uygulamada ve diğer sistemlerde kullanmanın sağlam bir yoludur; doğru uç nokta tasarımı, yetki kontrolü ve önbellekle uzun yıllar sorunsuz çalışır. Sitenizi bir uygulamaya bağlamayı düşünüyorsanız benimle iletişime geçebilirsiniz.
