Kategoriler
WordPress

WordPress REST API Değerlendirmesi

WordPress REST API, ünlü içerik yönetimi yazılımı aracılığı ile hazırlanan siteler ile diğer uygulamalar arasında veri alışverişi yapmak için kullanılan güçlü bir araçtır.

Söz konusu API, JSON formatında veri sağlayarak, geliştiricilere WordPress içeriğini web ve mobil uygulamalara entegre etme imkanı sunar.

Bu yazımızda, WordPress REST API sisteminin temel özellikleri, çalışma yönergeleri, güvenlik önlemleri ve genişletme yöntemleri ele alınacaktır.

WordPress REST API Nedir?

REST API, “Representational State Transfer” prensiplerine tabidir ve HTTP istekleriyle çalışan bir sistemdir.

WordPress REST API, varsayılan olarak aşağıdaki HTTP metotlarını destekler.

  • GET:
    Veri çekmek için kullanılır.
  • POST:
    Yeni veri eklemek için kullanılır.
  • PUT/PATCH:
    Mevcut veriyi güncellemek için kullanılır.
  • DELETE:
    Veri silmek için kullanılır.

REST API, JSON formatında veri alışverişi yapar ve URL bazlı isteklerle çalışır.

Örnek bir API isteği:

GET https://example.com/wp-json/wp/v2/posts

Bu istek, WordPress’in gönderi (post) listesini JSON formatında döndürecektir.

API Endpoint’leri

WordPress REST API, belirli endpoint’ler üzerinden çalışır.

Varsayılan olarak aşağıdaki gibi başlıca endpoint’leri içerir.

  • Gönderiler (Posts):
    /wp-json/wp/v2/posts
  • Sayfalar (Pages):
    /wp-json/wp/v2/pages
  • Kategoriler (Categories):
    /wp-json/wp/v2/categories
  • Etiketler (Tags):
    /wp-json/wp/v2/tags
  • Kullanıcılar (Users):
    /wp-json/wp/v2/users

WordPress REST API Nasıl Kullanılır?

API’yi çağırmak için bir istemci (Postman, cURL veya JavaScript Fetch API) kullanabilirsiniz.

Örnek olarak, gönderileri listelemek için bir JavaScript Fetch API çağrısı yapabiliriz:

fetch(‘https://example.com/wp-json/wp/v2/posts’)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));

Yetkilendirme ve Güvenlik

REST API’ye erişim için bazı endpoint’ler herkese açıkken, bazıları için yetkilendirme gereklidir.

Yetkilendirme yöntemleri şunlardır:

  1. Cookie Authentication (Çerez Kimlik Doğrulama):
    WordPress kullanıcıları için oturum açmış kullanıcıların çerezleri aracılığıyla API çağrılarını yetkilendirmek mümkündür.
  2. OAuth Authentication:
    Üçüncü taraf uygulamaların API’ye güvenli şekilde erişmesini sağlamak için OAuth kullanılabilir.
  3. Uygulama Parolaları (Application Passwords):
    WordPress 5.6 ve üzeri sürümlerde desteklenen uygulama parolaları, REST API’ye güvenli bir şekilde bağlanmak için kullanılabilir.

Örnek bir kimlik doğrulamalı istek, aşağıdaki gibi olmalıdır.

curl -X GET -u “kullaniciadi:uygulama_parolasi” “https://example.com/wp-json/wp/v2/posts”

REST API’yi Özelleştirme

  1. Özel Endpoint
    WordPress REST API, geliştiricilere özel endpoint’ler ekleme imkanı sunar.
    Özel bir endpoint eklemek için WordPress etkin temanızın functions.php dosyasına aşağıdaki kodu ekleyebilirsiniz:

    function custom_api_endpoint() {
    return new WP_REST_Response(array('message' => 'Merhaba, bu özel bir endpoint!'), 200);
    }

    add_action('rest_api_init', function() {
    register_rest_route('custom/v1', '/hello/', array(
    'methods' => 'GET',
    'callback' => 'custom_api_endpoint',
    ));
    });

    Bu kod, https://example.com/wp-json/custom/v1/hello adresine yapılan GET isteğine özel bir yanıt döndürür.

  2. Özel Alanlar

    Mevcut API cevaplarına özel alanlar eklemek için aşağıdaki kodu kullanabilirsiniz.

    function add_custom_field($data, $post, $context) {
    $data->data['custom_field'] = get_post_meta($post->ID, 'custom_field_key', true);
    return $data;
    }
    add_filter('rest_prepare_post', 'add_custom_field', 10, 3);

WordPress REST API, Web sitenizin içeriğini farklı platformlara entegre etmenin en modern yollarından biridir.

Kullanımı kolay, esnek ve güçlü olan bu API, web ve mobil uygulamalarla sorunsuz bir şekilde çalışabilir.

Güvenlik gereksinimlerini dikkatli bir şekilde uyguladığınızda,
çalışma ortamınız için REST API aracını yapılandırarak içerik yönetim işlerinizi oldukça kolaylaştırabiliyor olacaksınız.

Farsça