WordPress REST API Nasıl Kullanılır sorusunun cevabını bu kapsamlı rehberde bulacaksınız. Adım adım anlatım, örneklerle uygulama ve sıkça sorulan sorularla eksiksiz bilgi burada!
WordPress REST API Nedir?
REST Kavramı Nedir?
REST (Representational State Transfer), web servislerinin birbiriyle iletişim kurmasını sağlayan mimari bir yapıdır. Temel amacı; veri transferini, HTTP protokolleri üzerinden sade, hızlı ve uyumlu şekilde yapmaktır.
API Nedir ve Neden Önemlidir?
API (Application Programming Interface – Uygulama Programlama Arayüzü), yazılımların birbirleriyle konuşmasını sağlar. Bir restoranın menüsü gibi düşünebilirsiniz; hangi veri veya işlemlere ulaşabileceğinizi gösterir.
WordPress’te REST API’nin Yeri
WordPress, 4.7 sürümünden itibaren REST API’yi çekirdek sistemine entegre etti. Bu sayede WordPress verilerine dışarıdan erişmek, yönetmek ve kullanmak mümkün hale geldi. Artık WordPress sadece bir içerik yönetim sistemi değil, aynı zamanda güçlü bir veri servis sağlayıcısıdır.
WordPress REST API’nin Temel Bileşenleri
Endpoint Nedir?
Endpoint, API’nin erişilebilen URL’leridir. Örneğin:
https://example.com/wp-json/wp/v2/posts
Bu, “posts” yani yazılar endpoint’idir ve tüm yazıları JSON formatında döner.
Route, Request ve Response Kavramları
- Route (Yol): API’nin izlediği yol.
- Request (İstek): Kullanıcının yaptığı çağrı (GET, POST, PUT, DELETE).
- Response (Yanıt): API’nin döndürdüğü veri (genellikle JSON formatında).
REST API ile Yapılabilecekler
- Veri Çekme: Yazılar, sayfalar, kullanıcılar ve özel alanlar.
- Veri Gönderme: Yeni içerik oluşturma veya mevcut içeriği güncelleme.
- Veri Silme: İstenilen içeriği API üzerinden silme.
- Uygulama Entegrasyonu: Mobil, masaüstü veya farklı sistemlerle WordPress entegrasyonu.
WordPress REST API Nasıl Etkinleştirilir?
API Varsayılan Olarak Aktif mi?
Evet! WordPress 4.7 ve üzeri sürümlerde REST API varsayılan olarak aktif gelir. /wp-json/
yoluna giderek aktif olup olmadığını kontrol edebilirsiniz.
Güvenlik İzinleri ve Kullanıcı Rolleri
Yalnızca yetkili kullanıcılar (örneğin admin) bazı endpoint’lere erişebilir. GET istekleri genellikle herkese açıkken, POST/PUT/DELETE işlemleri için kimlik doğrulama gereklidir.
İlk API Çağrınızı Yapmak
GET İstekleri ile Veri Çekme Örneği
curl https://example.com/wp-json/wp/v2/posts
Bu istek, tüm yayınlanmış yazıları döner.
cURL, Postman ve Tarayıcı Kullanımı
- Tarayıcı: GET isteklerini doğrudan görebilirsiniz.
- cURL: Terminal üzerinden çağrı yapabilirsiniz.
- Postman: Her tür HTTP isteğini kolayca test edebilirsiniz.
WordPress REST API Endpoint Yapısı
Varsayılan Endpoint Örnekleri
- Yazılar:
/wp-json/wp/v2/posts
- Sayfalar:
/wp-json/wp/v2/pages
- Kullanıcılar:
/wp-json/wp/v2/users
Özel Endpoint Nasıl Tanımlanır?
Aşağıdaki gibi bir yapı ile özel endpoint oluşturabilirsiniz:
register_rest_route('myplugin/v1', '/products/', [
'methods' => 'GET',
'callback' => 'my_custom_function',
]);
Kimlik Doğrulama Yöntemleri
- Cookie Authentication: WordPress’in oturum çerezi ile çalışır.
- Application Passwords: Basit uygulamalar için güvenli yöntem.
- JWT veya OAuth: Daha gelişmiş doğrulama sistemleri sunar.
JSON Formatı ile Veri İşleme
WordPress REST API, tüm yanıtları JSON olarak gönderir. JSON (JavaScript Object Notation), kolay okunabilir, hafif bir veri değişim formatıdır.
Örnek:
{
"id": 101,
"title": { "rendered": "Merhaba Dünya" },
"content": { "rendered": "Bu bir örnek yazıdır." }
}
REST API ile WordPress Dışında Kullanım
- Mobil Uygulama Entegrasyonu: WordPress verileriyle mobil uygulamalar beslenebilir.
- JavaScript Tabanlı SPA’ler: React, Vue gibi modern frontend teknolojileri ile tam uyumlu.
Özel Endpoint Oluşturma
register_rest_route() Fonksiyonu Kullanımı
add_action('rest_api_init', function () {
register_rest_route('ornekapi/v1', '/mesaj/', array(
'methods' => 'GET',
'callback' => 'mesaj_gonder',
));
});
function mesaj_gonder() {
return ['mesaj' => 'Merhaba API!'];
}
Callback Fonksiyonları ve İzinler
'permission_callback' => '__return_true' // Herkese açık
Custom Post Type ve Meta Alanlarla Çalışma
CPT Verilerinin REST API ile Çekilmesi
'public' => true,
'show_in_rest' => true,
Meta Alanların API’ye Dahil Edilmesi
register_meta('post', 'urun_fiyat', [
'show_in_rest' => true,
'type' => 'string',
'single' => true
]);
Güvenlik Önlemleri ve En İyi Uygulamalar
- Erişim Kontrolü:
permission_callback
fonksiyonu ile sağlanır. - Gizli Veriler: Meta alanlar hassas veri içermemelidir.
- Rate Limiting: Sunucu yükünü önlemek için sınırlama uygulanmalıdır.
REST API Performans Optimizasyonu
- Cache Kullanımı: Transients API veya harici cache sistemleriyle.
- Veri Sınırlama:
?_fields=title,slug
,per_page
,page
gibi parametrelerle.
REST API ile Headless CMS Kullanımı
- Headless Mimari: Sadece veri sağlayıcı olan WordPress.
- Frontend: React, Vue, Angular gibi kütüphaneler ile modern arayüz.
Alternatif: GraphQL vs REST API
Özellik | REST API | GraphQL |
---|---|---|
Veri Alımı | Endpoint bazlı | Tek endpoint, özel sorgular |
Fazla Veri | Döner | İstenilen veri alınır |
Yapılandırma | Basit | Daha karmaşık ama esnek |
Hız | Genellikle daha hızlı | Karmaşık verilerde avantajlı |
WordPress REST API ile Gerçek Hayattan Örnek Proje
- CPT oluşturun (
todo
) - Meta alanlar ekleyin (durum, tarih)
- Özel endpoint yazın
- Frontend ile bağlayın (React, Vue)
Sıkça Sorulan Sorular (SSS)
WordPress REST API ile ne yapılabilir?
Yazı, sayfa, kullanıcı, özel alan ve medya gibi verilere erişebilir, düzenleyebilir ve harici uygulamalarla entegre edebilirsiniz.
WordPress REST API güvenli midir?
Evet, ama erişim izinleri doğru yapılandırılmalıdır.
Özel post türleri API ile nasıl çekilir?
show_in_rest
aktif olmalı. /wp-json/wp/v2/{post_type}
üzerinden çekilebilir.
WordPress API ile kullanıcı verisi alınabilir mi?
Sınırlı olarak evet. E-posta, parola gibi bilgiler gösterilmez.
API istekleri nasıl sınırlandırılır?
Eklentiler veya proxy tabanlı önlemlerle.
WordPress dışı sistemlere veri gönderilebilir mi?
Evet. Mobil uygulamalar ve diğer sistemlerle entegre edilebilir.
Sonuç: WordPress REST API ile Sonsuz Olasılıkların Kapısı Açılıyor
WordPress REST API, WordPress’i sıradan bir CMS olmaktan çıkarıp, modern web projelerinin merkezine yerleştiriyor. Kendi uygulamanızı geliştirmek, özel entegrasyonlar kurmak ya da Headless CMS altyapısı oluşturmak için REST API ideal bir çözümdür.
📌 Daha fazla bilgi için:
🔗 WordPress REST API Resmi Belgeler