WordPress REST API: Nasıl Erişilir, Kullanılır ve Güvenli Hale Getirilir (Tam Eğitim)

Yayınlanan: 2023-03-23

Bir WordPress geliştiricisi olmayı planlıyorsanız, 'REST API' adı verilen bir şeyle karşılaşacaksınız. Bu, WordPress'in işlevselliğini artıran ve platformu diğer uygulamalarla bağlamanızı sağlayan bir arayüzdür. Bazı geliştiriciler, özellikle gelişmiş işlevsellik uygulamak istiyorlarsa, süreçlerinin bir parçası olarak bunu gerçekten yararlı buluyor.

Neyse ki, WordPress REST API ile uzmanlık kazanmak için deneyimli bir geliştirici olmanıza gerek yok. Arayüz ve nasıl çalıştığı hakkında sağlam bir anlayışa sahip olduğunuzda, onu web oluşturma projelerinize kolayca uygulayabilirsiniz.

Bu gönderide, WordPress REST API'si için derinlemesine bir kılavuz sağlayacağız. Ne olduğunu, nasıl kullanılacağını ve tehditlere karşı nasıl korunacağını tartışacağız. Ayrıca size yaygın REST API hatalarını nasıl düzelteceğinizi, arayüzü diğer çerçevelerle nasıl kullanacağınızı ve diğer WordPress API çözümleriyle karşılaştırmasını göstereceğiz. Son olarak, bazı sık sorulan soruları ele alacağız.

WordPress REST API'si nedir?

WordPress REST API'sini anlamak için çeşitli bileşenlerini parçalamamız gerekecek. API'lere bir girişle başlayalım.

API nedir?

Bir uygulama programlama arabirimi (API), iki uygulamanın birbiriyle iletişim kurmasını sağlayan bir programdır. Sorunsuz bir işbirliğini kolaylaştıran iki yazılım parçası arasında aracı görevi görür.

Örneğin, sitenizde haritalar gibi bir Google ürünü görüntülemek istiyorsanız, Google Haritalar API'sini kullanmanız gerekir.

Google Cloud API kitaplığı

Bu, WordPress sitenizin Google Haritalar ile iletişim kurmasını sağlar, böylece bu haritaları görüntülemek için gereken tüm ilgili verileri ve özellikleri çekebilir.

Google gibi, diğer şirketlerin de API'leri vardır ve bunları web geliştiricilerine sağlar. Bu ürünler, bir özelliği (harita gibi) sıfırdan kodlama ihtiyacını ortadan kaldırdıkları için çok çekici olabilir. Bunun yerine üçüncü taraf yazılımları kullanabilir ve API aracılığıyla sitenize bağlayabilirsiniz.

DİNLENME nedir?

Temsili Durum Aktarımı (REST), geliştiricilerin API'ler oluştururken izlemesi gereken bir dizi yönergedir. Bu nedenle, bir REST API, bu standartlar göz önünde bulundurularak oluşturulmuş bir arabirimdir.

Tipik olarak, bir REST API şu ilkeleri izler:

  • İstemci-sunucu ayrımı: API, istemcinin (veya web sitesinin) ve sunucunun birbirinden ayrı kalmasını ve birbirinden bağımsız olarak çalışmaya devam etmesini sağlamalıdır.
  • Önbelleğe Alma: REST API'leri, performansı artırmak ve web sitesine hangi bilgilerin önbelleğe alınabileceğini bildirmek için mümkün olduğunda önbelleğe alınabilir veriler kullanmalıdır.
  • Vatansızlık: REST API'leri, bağlı oldukları web sitesi hakkında herhangi bir bilgiyi sunucularında depolayamaz ve yalnızca bir isteği işlemek için gereken bilgiler sağlanmalıdır.
  • Tekdüze bir arayüz: Kaynak istekleri, kaynağı ne olursa olsun aynı şekilde işlenmelidir.
  • Katmanlı mimari: REST API'leri, her katmanın belirli bir rolü yerine getirdiği ve diğerlerinden ayrı çalıştığı katmanlı bir sistem etrafında oluşturulur. Bu, API'yi daha güvenli ve güncellenmesi daha kolay hale getirir.

Bir REST API bu standartları karşıladığı için daha fazla güvenlik ve verimlilik sağlayabilir.

WordPress REST API'si ne yapar?

WordPress'in kendi REST API'si vardır. Bu, platformun, kullandıkları programlama dilinden bağımsız olarak hemen hemen tüm diğer web uygulamaları ve web siteleri ile iletişim kurmasını sağlar.

Bu API ile üçüncü taraf bir uygulama, WordPress veritabanınıza erişebilecek ve ondan veri çekebilecek. Aslında çoğu WordPress eklentisi ve teması, düzgün çalışması için platformun REST API'sini kullanır.

WordPress REST API, 4.7 sürümündeki çekirdek yazılımın bir parçası olarak yayınlandı. Bundan önce, yalnızca bir eklenti olarak mevcuttu.

WordPress yazılımı PHP ile oluşturulmuşken, REST API geliştiriciler için yeni olanaklar açan JSON (JavaScript Object Notation) nesneleri olarak veri gönderip alır.

En yaygın REST API komutları nelerdir?

REST API'leri, HTML komutları aracılığıyla belirli istekleri almak ve yanıtlamak için tasarlanmıştır.

Kullanacağınız en yaygın komutlar şunlardır:

  • GET: Bu komutu, bir gönderi veya veri parçası gibi sunucudan belirli bir kaynağı almak için kullanabilirsiniz.
  • POST: Bu komut, kod ekleyerek sunucudaki bir kaynağı değiştirmenize olanak sağlar.
  • PUT: Bu komut ile zaten sunucuda bulunan bir kaynağı düzenleyebilirsiniz.
  • DELETE: Bu komut sunucudan bir kaynağı kaldırır .

Bu komutları istek hakkında daha fazla bilgi veren bir satır takip eder. Bunlar uç noktalar olarak bilinir.

Örneğin, sitenizde yayınlanan yayınların bir listesini almak isterseniz, aşağıdaki uç noktayı kullanırsınız:

 GET http://mysite.com/wp-json/wp/v2/posts/?status=published

Başka bir örneğe bakalım. Yeni bir sayfa eklemek istiyorsanız, aşağıdaki komutu kullanırsınız:

 POST http://mysite.com/wp-json/wp/v2/posts/page

Bu dört komutla yapabileceğiniz birçok şey var. Uç noktaların bir listesini WordPress Geliştirici Kaynakları sayfasında bulabilirsiniz.

WordPress REST API'sinin gerçek dünyadan örnekleri

Artık WordPress REST API'sinin nasıl çalıştığına dair temel bir anlayışa sahip olduğunuza göre, WordPress.com'dan başlayarak bazı gerçek hayattan örneklere bakalım.

WordPress.com yönetici panosu ("Calypso" olarak adlandırılır), REST API aracılığıyla tamamen JavaScript'te oluşturulmuştur.

REST API'sini kullanan WordPress Calypso panosu

Calypso, kullanıcıların yeni içerik eklemesine, mevcut gönderileri düzenlemesine ve daha pek çok şeye olanak tanıyan bir web ve masaüstü uygulamasıdır. WordPress.com sitenizdeki verilere erişmek için REST API'sini kullanır.

Başka bir örnek, Blok Düzenleyicidir. Kendi kendine barındırılan WordPress'te Blok Düzenleyici, veritabanınızla etkileşime geçmek ve bloklar oluşturmak için REST API'sini kullanır.

USA Today gibi birçok çevrimiçi yayın da WordPress REST API'sini kullanır. Bu, Apple News gibi diğer haber uygulamalarında makaleleri otomatik olarak yayınlamalarına olanak tanır.

WordPress'te REST API nasıl etkinleştirilir ve devre dışı bırakılır

REST API'yi etkinleştirmek için herhangi bir şey yapmanıza gerek yoktur — bu, WordPress'te yerleşik olarak gelir. Gönderinin ilerleyen kısımlarında, ona nasıl erişeceğinizi göstereceğiz.

REST API, WordPress ile uygulama oluşturmak için güçlü bir araç olsa da, sitenizi Dağıtılmış Hizmet Reddi (DDoS) saldırılarına ve kötü amaçlı yazılımlara açık hale getirebilir. Ayrıca bilgisayar korsanları, diğer uygulamalarla bağlantı yoluyla verilerinize erişebilir.

WordPress REST API'sinin devre dışı bırakılması önerilmez. Bunun nedeni, bunu yapmanızın Blok Düzenleyici ve sitenizdeki herhangi bir eklenti ile ilgili sorunlara yol açabilmesidir.

Hala devam etmek ve devre dışı bırakmak istiyorsanız, bunu yapmanın en kolay yolu WPCode gibi bir eklenti kullanmaktır.

WP Kodu ana sayfa resmi

Eklentiyi sitenize yükleyip etkinleştirdikten sonra, WordPress kontrol panelinizde Kod Parçacıkları → Kitaplık'a gidin.

WPCode parçacıkları kitaplığı

Burada, Disable WordPress REST API adlı bir seçenek arayın. Bulduğunuzda fareyle üzerine gelin ve Parça parçacığı kullan'ı seçin.

"REST API'yi devre dışı bırak" snippet'ini kullanarak

Bu, kodun önizlemesini içeren bir sayfa başlatır.

WPCode snippet'ini düzenleme

Ekleme kutusuna kaydırırsanız, eklentinin bu kodu sitenize otomatik olarak uygulaması için Otomatik Ekle seçeneğini belirleyebilirsiniz.

otomatik ekleme işlevini kullanma

Ardından, en başa dönün ve geçiş anahtarını Etkin Değil konumundan Etkin konumuna getirin. Son olarak, bu değişiklikleri canlı hale getirmek için Güncelle'ye tıklayın.

WordPress REST API'si nasıl kullanılır?

Şimdi WordPress REST API'sinin nasıl kullanılacağına bakalım. Yukarıda bazı örnekleri zaten ele aldık, ancak bu bölümde size verilere tam olarak nasıl erişeceğinizi ve verileri alacağınızı göstereceğiz.

1. Adım: REST API'ye erişin

Canlı bir WordPress sitesinden veri almak istiyorsanız, REST API'ye doğrudan tarayıcınızdan erişebilirsiniz. Tek yapmanız gereken aşağıdaki adresi arama çubuğuna girmek (kendi alan adınızı ve uzantınızı kullanarak):

 mysite.com/wp-json/wp/v2

Bu, WordPress sitenizin JSON dosyasını getirir.

REST API'sini görüntüleme

Ardından, bir sonraki adımda size göstereceğimiz gibi, belirli verilere erişmek için bu URL'ye öğeler ekleyebilirsiniz.

2. Adım: REST API'ye istekte bulunun

Daha önce de belirttiğimiz gibi, sitenizdeki belirli verilere erişmek için uç noktaları kullanabilirsiniz. Tüm gönderilerinizin bir listesini almak istiyorsanız, /posts bitiş noktasını adresinize eklemeniz yeterlidir:

 mysite.com/wp-json/wp/v2/posts

Belirli bir gönderiyi almak istiyorsanız, kimliğini ekleyebilirsiniz (bunu WordPress panonuzdaki Gönderiler sayfasında bulabilirsiniz):

 mysite.com/wp-json/wp/v2/posts/4567

Bu arada, kullanıcılarınız hakkında veri almak istiyorsanız, aşağıdaki isteği kullanırsınız:

 mysite.com/wp-json/wp/v2/users

Bunlar sadece basit örnekler, ancak yapabileceğiniz daha çok şey var. Örneğin, belirli terimler içeren yayınları getirebilir, bir gönderinin durumunu "taslak"tan "yayınla"ya değiştirebilir ve daha fazlasını yapabilirsiniz.

3. Adım: İsteklerinizi doğrulayın

WordPress REST API, web sitenizdeki her türlü veriyi almanızı sağlar, ancak bunların tümü herkese açık değildir. Bazı durumlarda, isteğinizi doğrulamanız gerekir.

WordPress REST API'sine kimliği doğrulanmış isteklerde bulunmak için önce bir API anahtarı edinmeniz gerekir. Bunu yapmak için, WordPress kontrol panelinizde Kullanıcılar → Profil'e gidin.

Ardından, Uygulama Parolaları bölümüne gidin. Burada, parolanız için bir ad girmeniz (referans için) ve Yeni Uygulama Parolası Ekle'yi tıklamanız gerekir.

WordPress'te Uygulama Parolası oluşturma

Bu, sizin için isteklerinizde kullanmanız gereken bir API anahtarı oluşturacaktır. Örneğin, API anahtarınız "1234567890" ise, bunu şu şekilde bir Yetkilendirme başlığına dahil edebilirsiniz:

 https://mysite.com/wp-json/wp/v2/posts?Authorization=Bearer1234567890

1234567890 kodunu kopyaladığınız API anahtarıyla değiştirmeyi ve varsa boşlukları kaldırmayı unutmayın.

Belirli bir yazar tarafından yazılan gönderilerin bir listesini kullanıcı kimlikleriyle de alabilirsiniz. Kimliğini, WordPress panonuzdaki Kullanıcılar bölümüne gidip yazarın adına tıklayarak bulabilirsiniz. Kimlik, yazar sayfasının URL'sinde görüntülenecektir.

Diyelim ki bir yazarın adı “Joe” ve kimliği “123”. Bu senaryoda, Joe tarafından yazılan tüm gönderilerin bir listesini almak için aşağıdaki URL'yi kullanabilirsiniz:

 https://mysite.com/wp-json/wp/v2/posts?author=123&Authorization=Bearer1234567890

Kullanıcının kimliğini bulamıyorsanız, profili, kimliği artık görüntülenmeyecek şekilde değiştirilmiş olabilir. Bu durumda, kullanıcı tarafından kimlik yerine oturum açma adını veya e-posta adresini kullanarak yazılan tüm gönderilerin bir listesini alabilirsiniz.

Bunu yapmak için, isteğinizde "yazar" parametresi yerine "slug" parametresini kullanmanız gerekecek:

 https://mysite.com/wp-json/wp/v2/posts?slug=joe&Authorization=Bearer1234567890

“slug” parametresi, kullanıcının oturum açma adını veya e-posta adresini belirtmenizi sağlar. WordPress REST API, kullanıcı tarafından yazılan tüm gönderilerin bir listesini döndürür.

WordPress REST API ne zaman kullanılır?

WordPress REST API, çok çeşitli projeler için kullanılabilir. İşte birkaç örnek:

  • Bir WordPress sitesini bir mobil uygulama ile entegre etme. Bir geliştiriciyseniz, bir mobil uygulamadan bir WordPress sitesindeki verileri almak ve düzenlemek için REST API'sini kullanabilirsiniz. Bu, sitenizle etkileşime giren özel uygulamalar oluşturmanıza olanak tanır.
  • Özel entegrasyonlar oluşturma. WordPress REST API'sini kullanarak, CRM araçları gibi diğer yazılımlarla özel entegrasyonlar oluşturabilirsiniz.
  • Özel komut dosyaları oluşturma. WordPress sitenizdeki yayınları planlamak veya kullanıcı profillerini güncellemek gibi belirli görevleri otomatikleştirmek için REST API'sini kullanabilirsiniz.

Gördüğünüz gibi, REST API, WordPress'i diğer platformlarda oluşturulmuş uygulamalar veya sitelerle entegre etmenizi sağlar.

WordPress REST API ne zaman kullanılmamalıdır?

WordPress REST API güçlü bir araç olsa da projeniz için her zaman doğru araç olmayabilir. Kullanmak istemeyeceğiniz birkaç nedene bakalım.

Hatırlayacağınız gibi, WordPress REST API JavaScript ile oluşturulmuştur. Bu nedenle, JavaScript'i desteklemeyen bir uygulama geliştiriyorsanız, REST API kullanıyorsanız düzgün çalışmaz.

Ayrıca, JavaScript üzerine oluşturulmuş uygulamalara çok erişilebilir olmayabilir. Örneğin, dinamik içeriği işleme biçimi, ekran okuyucularla uyumsuz olabilir. Sonuç olarak, içeriğinize görme engelli kullanıcılar için erişilemez hale gelebilir.

WordPress REST API'sini istismarlardan nasıl koruyabilirim?

Daha önce de belirtildiği gibi, WordPress REST API'sini kullanmak sitenizi tehditlere karşı savunmasız hale getirebilir. API, iki platform arasında bir köprü görevi görür ve bilgisayar korsanları bu bağlantı üzerinden web sitenize girmenin bir yolunu bulabilir.

Bu nedenle, WordPress REST API'sini kullanmaya başlamadan önce, WordPress sitenizin bir yedeğini oluşturmanız önemlidir. Bu şekilde, bir şeyler ters giderse içeriğinizin yeni bir sürümünü geri yükleyebilirsiniz.

Ek olarak, yeterli güvenlik önlemlerinin alındığından emin olmak isteyeceksiniz. Bu, Jetpack Protect gibi bir araç kullanmak anlamına gelir.

Jetpack Koruma ana sayfası

Bu eklenti, kötü amaçlı yazılım taraması, güvenlik açığı taraması ve bir web uygulaması güvenlik duvarı (WAF) dahil olmak üzere güvenlik özellikleriyle birlikte gelir.

Ayrıca, değişikliklerinizi canlı hale getirmeden önce bir WordPress hazırlama sitesinde REST API'sini kullanmak iyi bir fikirdir. Bu şekilde, web sitenizi yanlışlıkla bozarsanız, ön uçtaki kullanıcı deneyimini etkilemez.

Yaygın REST API hataları ve sorunları nasıl düzeltilir?

WordPress REST API'sini kullanırken bazı hatalarla karşılaşabilirsiniz. Bu nedenle, en yaygın sorunlardan bazılarına ve bunları çözmek için atabileceğiniz adımlara bakalım.

Yavaş yanıt süreleri ve zaman aşımları

WordPress REST API'sini çağırırken yavaş yanıt süreleri ve zaman aşımlarıyla karşılaşabilirsiniz. Bu sorunlar genellikle aşağıdaki faktörlerden kaynaklanır:

  • Yetersiz sunucu kaynakları. Sunucunuz, REST API aracılığıyla yapılan istekleri işlemek için yeterli kaynağa sahip olmayabilir. Bu durumda, daha güçlü bir WordPress barındırma planına geçmeniz gerekir.
  • Eklenti veya tema çakışmaları. WordPress eklentileri ve temaları bazen REST API ile çakışabilir. Bu olduğunda, sorunu çözüp çözmediğini görmek için tüm eklentileri devre dışı bırakmayı ve varsayılan bir temaya geçmeyi deneyin. Varsa, suçluyu belirlemek için eklentilerinizi teker teker yeniden etkinleştirebilirsiniz.
  • Veri boyutu. API çağrıları sırasında büyük veri aktarımları zaman aşımlarına neden olabilir. Bunu önlemek için, sayfa başına görüntülenen öğe sayısını azaltmayı deneyebilirsiniz (bunu daha sonra gönderide nasıl yapacağınızı göstereceğiz).
  • Veritabanı sorunları. WordPress veritabanınız optimize edilmemişse, REST API çağrılırken yavaş yanıt sürelerine ve zaman aşımlarına neden olabilir. Gereksiz verileri kaldırarak ve bir optimizasyon eklentisi kurarak optimize edebilirsiniz.

Ayrıca, API'nizin performansını Google Cloud'un işlem paketi (eski adıyla Stackdriver) ve Microsoft'un Application Insights gibi bir araçla izlemek isteyebilirsiniz. Bu araçlar, WordPress REST API'sinin performansı hakkında fikir verebilir ve yavaş yanıt sürelerinin nedenlerini belirlemenize yardımcı olabilir.

REST API çağrılırken 403 Yasak hatası

403 Yasak hatası, istemcinin istenen kaynağa erişim yetkisi olmadığını gösteren bir HTTP durum kodudur. Bu hatanın bazı yaygın nedenlerine ve olası çözümlere bakalım:

  • Yanlış API Anahtarı. İstek bir API anahtarı gerektiriyorsa, kullandığınız anahtarın geçerli olduğundan ve istek başlıklarında doğru şekilde iletildiğinden emin olun.
  • geçersiz. 'Nonce', istek sahteciliğini önlemek için bir kez kullanılan rastgele bir sayıdır. Geçersizse, 403 yasak hatasına neden olabilir.
  • Kullanıcı İzinleri. Belirli bir API uç noktasına erişmek için gerekli izinlere sahip olduğunuzdan da emin olmak isteyeceksiniz. Web sitesinin sahibi değilseniz, yöneticiden size doğru izinleri vermesini istemeniz gerekebilir.
  • Güvenlik eklentileri. Güvenlik eklentileri, bir güvenlik tehdidi olarak gördüğü için bir API çağrısını engelleyebilir. Bu tür sorunları çözmek için eklenti ayarlarınızda API uç noktasını beyaz listeye ekleyebilirsiniz.
  • Güvenlik duvarı. API isteğini engelleyen bir güvenlik duvarı kullanıyor olabilirsiniz. Güvenlik duvarının doğru ayarlandığından emin olun veya API'yi kullanırken devre dışı bırakmayı deneyin.
  • Sunucu yapılandırması. Bazı sunucular belirli API çağrılarını işleyecek şekilde yapılandırılmamıştır, bu nedenle yardım için barındırma sağlayıcınıza ulaşmak isteyebilirsiniz.

Ağ isteklerini ve istek başlıklarını incelemek için tarayıcınızın geliştirici araçlarını da kullanabilirsiniz. Chrome kullanıyorsanız DevTools'u açmak için Ctrl+Shift+C tuşlarına basmanız yeterlidir.

Ek olarak, hata hakkında daha fazla bilgi için sunucu günlüklerinizi kontrol edebilirsiniz. Onlara barındırma hesabınız aracılığıyla erişebilmelisiniz. Değilse, barındırma sağlayıcınızdan yardım isteyebilirsiniz.

REST API beklenmeyen bir sonuçla karşılaştı

"REST API beklenmeyen bir sonuçla karşılaştı" hatası yaygın bir sorundur. Genellikle aşağıdaki faktörlerden kaynaklanır:

  • izinler. İstenen kaynağa erişmek için doğru izinlere sahip olmayabilirsiniz. Bu durumda, sitenin yöneticisiyle iletişime geçmeniz gerekir.
  • URL yapılandırma sorunu. Bu hata, API uç noktası URL'si yanlış yapılandırılmışsa oluşabilir. Doğru olduğundan ve gerekli tüm sorgu parametrelerinin dahil edildiğinden emin olmak için URL'yi iki kez kontrol edin.
  • Yanlış komut. İstek için yanlış komutu (örn. GET, POST, PUT, DELETE) kullanıyor olabilirsiniz. Belirli uç nokta için doğru komutu kullandığınızdan emin olmak için API belgelerine bakın.
  • Yanlış istek formatı. İsteğinizde doğru biçimi kullandığınızdan emin olun. WordPress REST API'sinde veriler JSON olarak gönderilmelidir.
  • Yanlış son nokta. Var olmayan bir uç noktayı aramaya çalışıyor olabilirsiniz. Bu senaryoda, doğru olduğundan emin olmak için uç nokta URL'sini tekrar kontrol edin.
  • Sunucu tarafı sorunları . Sunucunuz sorunlar yaşıyor olabilir. Bu, paylaşılan barındırma planlarında daha yaygındır. Bu başınıza gelirse, daha fazla kaynağa sahip bir sunucuya yükseltme zamanı gelmiş olabilir.

Sorunun çözülüp çözülmediğini görmek için eklentilerinizi de devre dışı bırakmak isteyebilirsiniz. Daha önce belirtildiği gibi, bazı araçlar WordPress REST API ile uyumluluk sorunlarına neden olabilir.

rest_api_init çalışmıyor

“rest_api_init çalışmıyor” hatası, başka bir yaygın WordPress REST API hatasıdır. Genellikle eklenti ve tema çakışmalarının yanı sıra sınırlı sunucu kaynaklarından kaynaklanır.

Yine de, WordPress REST API'sinin çalışmamasına neden olabilecek başka faktörler de vardır, örneğin:

  • Özel REST API uç noktaları. Özel uç noktalarla istekte bulunuyorsanız doğru kancaları ve işlevleri kullandığınızdan emin olun.
  • .htaccess dosyası. Doğru ayarlandığından emin olmak için .htaccess dosyanızı kontrol etmeniz gerekebilir.
  • KORS hatası. Kaynaklar Arası İstekler (CORS) yapmaya çalışıyorsanız ve WordPress REST API çalışmıyorsa, sunucu bunları kabul edecek şekilde yapılandırılmamış olabilir. Sunucunun CORS'u kabul edip etmediğini öğrenmek için barındırma sağlayıcınızla iletişime geçmek isteyebilirsiniz.

Ek olarak, API'yi desteklemeyen eski bir WordPress kurulumu kullanıyor olabilirsiniz. Öyleyse, en son sürüme yükseltmeniz önemlidir.

Temel kimlik doğrulama çalışmıyor

Temel Kimlik Doğrulama kullanılarak WordPress REST API'sini çağırmaya çalışırken “Temel kimlik doğrulama çalışmıyor” hatası oluşabilir. Temel Kimlik Doğrulama, HTTP protokolüne yerleşik basit bir kimlik doğrulama şemasıdır. Birinin kimliğini doğrulamak için bir kullanıcı adı ve şifre kullanır.

İşte bu hatanın bazı yaygın nedenleri (ve bunların nasıl çözüleceği):

  • Yanlış kimlik bilgileri. Doğru olduklarından emin olmak için istek başlıklarındaki kullanıcı adını ve parolayı kontrol edin.
  • Güvenli Yuva Katmanı (SSL) sorunu. Yüklü geçerli bir SSL sertifikanız olduğundan ve doğru şekilde yapılandırıldığından emin olun. Değilse, nasıl ücretsiz ve geçerli bir SSL sertifikası alacağınızla ilgili adım adım kılavuzumuza bakın.
  • HTTP'den HTTPS'ye yönlendirmeler. Bazı web siteleri, HTTP isteklerini HTTPS'ye yönlendirecek şekilde yapılandırılmıştır. Tarayıcı HTTP üzerinde kimlik doğrulaması yapmaya çalışıyorsa bu hatayla karşılaşabilirsiniz. Bu nedenle, bir HTTPS uç noktasında bir istek çalıştırdığınızdan emin olmak isteyeceksiniz.

Diğer REST API sorunları gibi, bu hata da tema ve eklenti çakışmalarından kaynaklanabilir. Bir kez daha varsayılan temaya geçmek ve sorunu gidermek için eklentilerinizi devre dışı bırakmak isteyeceksiniz.

Bu yardımcı olmazsa, güvenlik duvarınızı geçici olarak devre dışı bırakmak isteyebilirsiniz. Bu, kimlik doğrulama isteğinizi engelliyor olabilir.

Bir CORS yapıyorsanız, sunucunuz bunları kabul edecek şekilde yapılandırılmamış olabilir. Sonunda yapabilecekleri bir şey olup olmadığını görmek için barındırma sağlayıcınızla görüşmeye değer.

Son olarak, sitenin yöneticisi değilseniz, isteği tamamlamak için doğru izinlere veya role sahip olmayabilirsiniz. Bu durumda, web sitesinin sahibine ulaşmanız gerekir.

REST API'nin gelişmiş kullanım durumları

WordPress REST API sayesinde, popüler çerçeveleri ve diğer programlama dillerini kullanarak sitenizden veri alabilirsiniz. Birkaç örneğe bir göz atalım.

React ile WordPress REST API'si nasıl kullanılır?

React, kullanıcı arayüzleri oluşturmak için popüler bir JavaScript kitaplığıdır. WordPress REST API'sine HTTP istekleri yapmak için Node-WPAPI istemcisini kullanabilirsiniz.

Örneğin, WordPress sitenizdeki gönderilerin bir listesini almak için, aşağıdakileri Node-WPAPI'ye girmeniz gerekir:

 import WPAPI from 'wpapi'; const wp = new WPAPI({ endpoint: 'http://example.com/wp-json' }); wp.posts().then(posts => {  console.log(posts); });

WordPress REST API'sini React ile kullanma hakkında daha fazla bilgi için Node-WPAPI belgelerine göz atabilirsiniz.

Angular ile WP REST API nasıl kullanılır?

Angular, web uygulamaları geliştirmek için bir JavaScript çerçevesidir. WordPress REST API ile kullanmak için @angular/common/http modülünü kullanmanız gerekir.

Örneğin, gönderilerin bir listesini almak için aşağıdaki kodu girebilirsiniz:

 import { HttpClient } from '@angular/common/http'; @Injectable() export class PostService {  constructor(private http: HttpClient) {}  getPosts(): Observable<any> {    return this.http.get('http://mysite.com/wp-json/wp/v2/posts');  } }

WordPress REST API'sine istekte bulunmak için HttpClient'i kullanma hakkında daha fazla bilgi için Angular belgelerine göz atabilirsiniz.

Python ile WordPress REST API'si nasıl kullanılır?

WordPress REST API'sini Python ile de kullanabilirsiniz. Bu, web uygulamaları ve diğer yazılımlar oluşturmak için kullanılabilen popüler bir programlama dilidir.

Başlamak için İstekler kitaplığını kullanmanız gerekir. WordPress gönderilerinizin bir listesini almak istiyorsanız, aşağıdakileri girersiniz:

 import requests response = requests.get('http://example.com/wp-json/wp/v2/posts') posts = response.json() print(posts)

Daha ayrıntılı talimatlar için İstek kitaplığı belgelerini okuyabilirsiniz.

REST API, diğer WordPress API çözümleriyle nasıl karşılaştırılır?

REST API'nin diğer WordPress API çözümlerinden nasıl farklı olduğunu merak ediyor olabilirsiniz. Size bir fikir vermesi için, onu en popüler alternatiflerden bazılarıyla karşılaştıracağız.

WordPress REST API ve AJAX karşılaştırması

WordPress REST API, WordPress verilerine erişmek için verimli bir yol sağlar. Geliştiricilerin WordPress ile özel uygulamalar ve entegrasyonlar oluşturmasına olanak tanır.

Bu arada, WordPress AJAX API, WordPress verilerine erişmenin daha eski bir yöntemidir. WordPress 2.0'da tanıtıldı ve geliştiricilerin JavaScript kullanarak sitenin ön ucundan eşzamansız istekler yapmasına olanak tanıyor.

WordPress AJAX API, işlevsellik açısından biraz kısıtlayıcı olabilir, bu nedenle karmaşık projelerde kullanılması önerilmez.

WordPress REST API'si ve WPGraphQL karşılaştırması

WPGraphQL, WordPress verilerine erişmek için alternatif bir yol sağlayan WordPress için bir GraphQL uygulamasıdır. GraphQL, API'niz için bir sorgulama dilidir. Müşterilerin tam olarak ihtiyaç duydukları verileri talep etmelerini sağlar, daha fazlasını değil.

WordPress REST API'sinden farklı olarak, WPGraphQL, erişime ihtiyacı olan her kullanıcı için ayrı bir uygulama şifresi oluşturulmasını gerektirir. Ayrıca, daha karmaşık bir sorgulama dili kullandığından içeriği teslim etmede biraz yavaş olabilir.

WordPress REST API ve XML-RPC karşılaştırması

WordPress 1.5'te tanıtılan WordPress XML-RPC API, XML-RPC protokolünü kullanarak WordPress'e uzaktan istekte bulunmanıza olanak tanır.

XML-RPC basit ve hafiftir ve bu nedenle daha hızlı sonuç verebilir. Sorun şu ki, Ajax gibi, WordPress REST API'sine kıyasla sınırlı işlevselliğe sahip.

WordPress REST API hakkında sık sorulan sorular

Bu kılavuzda, konu WordPress REST API'ye geldiğinde temel konuların çoğunu ele aldık. Ancak, her ihtimale karşı, bu güçlü araçla ilgili sık sorulan birkaç soruya bakalım.

WordPress REST API'sinin bir iade sınırı var mı?

Varsayılan olarak, WordPress REST API'sinin sayfa başına maksimum 100 öğe döndürme sınırı vardır. Bu, bir öğe listesi (yayınlar, sayfalar veya kullanıcılar gibi) döndüren bir uç noktaya istekte bulunursanız, API'nin yanıtta yalnızca en fazla 100 öğe göstereceği anlamına gelir.

Neyse ki, sınırı sayfa başına maksimum 500 öğeye çıkarmak için "per_page" parametresini kullanabilirsiniz.

Örneğin, sayfa başına 200 öğe istiyorsanız, aşağıdakileri kullanabilirsiniz:

 https://mysite.com/wp-json/wp/v2/posts?per_page=200

Sayfa başına görüntülenen öğe sayısını da azaltabileceğinizi unutmayın.

REST API'sini WooCommerce ile kullanabilir miyim?

WooCommerce'in kendi REST API'si vardır. WooCommerce REST API, WooCommerce mağazanızdaki verilere erişmenizi ve bunları değiştirmenizi sağlar. Bu, ürünler, siparişler ve müşteriler hakkındaki bilgileri içerir. Ayrıca, WooCommerce'i diğer e-ticaret platformlarıyla entegre etmek için WooCommerce REST API'sini kullanabilirsiniz.

WordPress REST API'sini kullanmaya başlayın

WordPress REST API, sitenizi diğer uygulamalar ve üçüncü taraf araçlarla entegre etmenize olanak tanır. Web geliştiricileri, tek sayfalık uygulamalar için veri almak, WordPress'i bir mobil uygulamaya bağlamak ve çok daha fazlası için kullanabilir.

Ek olarak, WordPress REST API'sini React, Angular ve Python gibi diğer çerçeveler ve programlama dilleriyle kullanabilirsiniz. WordPress REST API güçlü ve güvenilir bir araç olmasına rağmen, bu bağlantılar üzerinden saldırıları önlemek için sitenizi yedeklemeniz ve bir güvenlik aracı kullanmanız yine de önemlidir.

Jetpack Protect ile WordPress sitenizi kötü amaçlı yazılımlara ve bilgisayar korsanlarına karşı koruyabilir, WordPress REST API'sini daha güvenli bir ortamda kullanabilirsiniz.