WordPress REST API este în proces de schimbare a WordPress. Poate că nu ați observat, deoarece multe dintre aceste schimbări se află și au loc sub capotă, dar implicațiile API REST fac o diferență uriașă pentru viitorul WordPress, atât din punct de vedere al bazei de cod, cât și al utilizărilor sale.

Dacă nu ați lucrat cu WordPress REST API, s-ar putea să vă întrebați exact despre ce este vorba. Așadar, să începem prin a vedea ce este API-ul REST.

În acest articol vă vom spune:

Ce este WordPress REST API

WordPress REST API este o interfață pe care dezvoltatorii o pot folosi pentru a accesa WordPress din afara instalării WordPress însăși. Îl accesații folosind JavaScript, ceea ce înseamnă că poate fi folosit pentru a crea site-uri web și aplicații interactive.

REST înseamnă reprezentativitatea transferului de stat, iar API este interfața de programare a aplicațiilor. Să aruncăm o privire la ce înseamnă fiecare dintre acestea.

Ce este o interfață de programare a aplicației (API)?

O interfață de programare a aplicației este definită în felul următor:

„O interfață sau un protocol de comunicare între un client și un server destinate să simplifice construirea software-ului din partea clientului.”

Dacă nu sunteți familiarizat cu API-urile, s-ar putea să nu vă ajute foarte mult. Pentru a spune mai simplu, un API este un set de coduri care permit unui sistem să interacționeze (sau „interfața”) cu altul. Dacă ați adăugat vreodată o hartă Google pe site-ul dumneavoastră WordPress, ați folosit API-ul Google Maps, care permite interfațării site-ului dumneavoastră WordPress cu Google Maps.

Aceste sisteme nu trebuie să fie complet separate. WordPress are deja mai multe API-uri, pentru precum plugin-uri, setări și shortcodes. Acestea pot fi utilizate de dezvoltatorii de plugin-uri și teme pentru a interacționa cu core-ul WordPress și pentru a face lucrurile să se întâmple (cum ar fi crearea de coduri scurte și adăugarea ecranelor de setări la administratorul WordPress).

Diferența în cazul REST API este că permite sistemelor din afara instalației dumneavoastră WordPress să interacționeze cu WordPress, de unde vine partea REST.

Ce este transferul reprezentativ de stat (REST)?

Transferul reprezentativ de stat sau REST oferă standarde pe care sistemele web le pot utiliza pentru a interfața între ele. Fără REST, două sisteme nu s-ar putea înțelege reciproc, astfel încât să transmită date înainte și înapoi.

Pentru ca o cerere să fie RESTful, aceasta trebuie să respecte cinci principii:

  1. Interfață uniformă. Adresele URL utilizate pentru accesarea resurselor din sistem trebuie să fie uniforme, consecvente și accesibile printr-o abordare comună, cum ar fi GET.
  1. Client server. Aplicațiile client și aplicațiile server trebuie să fie separate, astfel încât să poată fi dezvoltate independent unele de altele. Dacă tehnologia din partea serverului (adică WordPress) se schimbă, aplicația din server (o aplicație, de exemplu) trebuie să o poată accesa prin aceeași metodă simplă.
  1. Fără stare. Serverul nu își schimbă starea atunci când se face o nouă solicitare cu ajutorul API-ului. Nu stochează cererile făcute.
  1. Cacheable. Toate resursele trebuie să fie memorate în cache, pentru a îmbunătăți viteza și conformitatea cu standardele web. Cache-ul poate fi implementat pe server sau pe client.
  1. Sistem stratificat. Un sistem RESTful vă permite să utilizați mai multe straturi pentru a-l accesa, stocând date în servere intermediare dacă este necesar. Serverul nu poate spune dacă clientul final este conectat direct la acesta.

Toate aceste constrângeri se referă la paginile și aplicațiile web și guvernează modul în care o aplicație poate interfața cu API-ul.

Ce înseamnă asta pentru WordPress?

Unirea dintre REST și API înseamnă că WordPress REST API este un set de cod conceput pentru a face posibilă interfațarea altor sisteme cu WordPress și că este construit într-un mod care să asigure faptul că aceste sisteme se vor înțelege reciproc.

Înseamnă că un site web al unei părți terțe sau o aplicație mobilă, de exemplu, va putea accesa baza de date WordPress, va putea prelua date din ea și va putea adăuga date.

Cu toate acestea, există o serie de implicații și utilizări.

Înțelegerea WordPress REST API

WordPress REST API a fost dezvoltată ca răspuns la modificările modului în care sunt dezvoltate site-urile și aplicațiile și necesitatea deschiderii WordPress pe scară mai largă.

Background pentru WordPress REST API

WordPress REST API a fost lansată ca parte a corecției în versiunea 4.7 în decembrie 2016, dar a existat și până atunci sub forma unui plugin.

Este conceput pentru a sprijini o serie de aplicații construite pe WordPress și pentru a transforma WordPress dintr-un sistem de gestionare a conținutului într-o platformă de aplicații.

Este utilizat pe scară largă de către WordPress.com, a cărui interfață este bazată pe JavaScript și utilizează API-ul REST pentru a interfața cu baza de date WordPress. Este folosit și de interfața de editare Gutenberg, care a devenit parte din nucleu în 2019.

REST API lărgește gama de aplicații pentru care poate fi folosit WordPress. În timp ce un sistem de gestionare a conținutului excelează în rularea unui site web complex, o platformă de aplicații poate fi, de asemenea, folosită pentru a alimenta aplicații web cu o singură pagină sau SPA-uri (dacă ați folosit vreodată documente Google, ați folosit unul dintre acestea).

În acestea, conținutul este actualizat atunci când utilizatorul ia măsuri, în loc să încarce noi pagini. Deoarece folosește JavaScript (un limbaj de partea clientului) în loc de PHP (un limbaj de partea serverului), poate face ca lucrurile să se întâmple în browserul utilizatorului, fără a fi necesar să trimiteți constant cereri către server.

Implicații pentru utilizatorii și dezvoltatorii WordPress

Dacă sunteți un utilizator și / sau un dezvoltator care lucrează cu WordPress, API-ul REST are o serie de implicații.

Pentru utilizatori, acestea includ:

  • Modificări ale interfeței, inclusiv editorul Gutenberg.
  • Modificări și îmbunătățiri ale aplicației mobile WordPress.
  • Ecranele de administrare WordPress găzduite de sine, care seamănă mai mult cu ecranele WordPress.com de-a lungul timpului.

Pentru dezvoltatori, există implicații și posibilități mai largi:

  • Posibilitatea de a crea SPA-uri folosind API-ul REST, extragând date de pe WordPress, dar arată foarte diferit de WordPress.
  • Posibilitatea de a integra WordPress cu alte tehnologii și sisteme frontend.
  • Posibilitatea de a vă dezvolta cu WordPress dacă sunteți un dezvoltator frontend care nu scrie PHP.
  • Pentru dezvoltatorii PHP, aceștia au o nevoie tot mai mare de a-și extinde abilitățile pentru a include JavaScript.
  • Modificări specifice, cum ar fi necesitatea de a construi blocuri Gutenberg în loc de căsuțe meta în ecranele de editare de pagini și post

De-a lungul timpului, WordPress REST API va însemna că tot mai multe dintre corecțiile WordPress vor fi scrise în JavaScript și nu PHP. Dacă sunteți dezvoltator WordPress, acest lucru înseamnă că va trebui să învățați JavaScript.

Cum puteți accesa WordPress REST API

Pentru a accesa WordPress REST API, va trebui să accesați site-ul dumneavoastră prin intermediul liniei de comandă. În cazul WordPress, aceasta se numește WP-CLI. Nu faceți acest lucru prin intermediul ecranelor de administrare sau accesând direct codul de pe site-ul dumneavoastră.

Să aruncăm o privire la modul în care ați început.

Accesarea WordPress REST prin WP-CLI

WP-CLI este interfața liniei de comandă WordPress. Aceasta vă permite să accesați și să lucrați cu WordPress prin interfața liniei de comandă (CLI) de pe computer. 

Pentru a accesa CLI, deschideți terminalul pe un Mac sau în Linux, sau prompt-ul de comandă în Windows.

Pentru a accesa un site la distanță, aveți nevoie de SSH pe serverul dumneavoastră pentru a-l accesa prin WP-CLI (Nu se poate conecta prin SSH? Aflați cum să remediați eroarea SSH „Conexiune refuzată”).

Pentru a accesa un site local, trebuie doar să utilizați structura de directoare corectă din linia de comandă. Este o idee bună să experimentați cu API-ul REST pe un site de testare local înainte de a-l încerca pe un site live.

Va trebui să accesați în mod specific API REST pentru site-ul dumneavoastră, astfel:

siteuldumneavoastră.com/wp/v2

Puteți adăuga apoi elemente după aceasta pentru a accesa anumite tipuri de date, pe care le vom analiza în detaliu în scurt timp. Aceste elemente se numesc puncte finale.

Autentificarea

După ce ați accesat site-ul dumneavoastră, poate fi necesar să treceți prin autentificare. Unele puncte finale sunt publice și nu necesită autentificare, în timp ce altele necesită autentificare.

Nu vă conectați la administratorul site-ului dumneavoastră aici: API REST face lucrurile un pic diferit.

Pentru a vă autentifica site-ul prin WP-CLI, va trebui să instalați un plugin de autentificare. Pentru instalațiile de dezvoltare, plugin-ul Basic Auth va face treaba asta și este simplu de folosit.

Totuși, pentru site-urile live, ar trebui să utilizați o formă mai puternică de autentificare, cum ar fi pluginul JWT Authentication, acesta utilizează JSON Web Token , fapt care îl face să fie mult mai sigur.

Puteți utiliza apoi linia de comandă pentru a accesa datele și pentru a include autentificarea.

Exemplul de mai jos folosește comanda curl pentru a testa conexiunea la WordPress. Va genera o listă de postări.

curl -X GET –user username:password -i http://siteuldumneavoastră.com/wp/v2/posts?status=draft

Schițele postate nu reprezintă informații publice, deci trebuie să vă autentificați pentru a le accesa. Dar dacă căutați date publice, nu aveți nevoie de autentificare. Cu alte cuvinte, pentru a prelua o listă de postări care au fost publicate, puteți utiliza:

curl -X GET http://siteuldumneavoastră.com/wp/v2/posts

Această comandă vă va afișa toate postările publicate, deoarece acestea sunt publice.

Prezentare generală a comenzilor WordPress REST API 

După ce ați accesat site-ul dumneavoastră și știți cum să folosiți autentificarea (și, într-adevăr, dacă trebuie), va trebui să folosiți o comandă dintr-o serie de comenzi pentru a interacționa cu site-ul dumneavoastră.

Comenzile pe care va trebui să le utilizați sunt:

GET preia o resursă precum o postare sau alte date.

POST adaugă o resursă la server, cum ar fi o postare, un atașament sau o altă resursă.

PUT poate fi utilizată pentru a edita sau actualiza o resursă care este deja pe server.

DELETE elimină o resursă de pe server. Folosiți-l cu grijă!

Haideți să aruncăm o privire asupra fiecărei comenzi în parte.

GET

Comanda GET este probabil cea mai frecvent utilizată: preia date. Exemplul de mai jos va aduce o listă cu toate paginile publicate pe site-ul dumneavoastră:

GET /wp/v2/posts/?status=published

Rețineți că nu am inclus calea completă către site-ul dumneavoastră în linia de mai sus, deoarece ați accesat-o deja folosind WP-CLI.

După preluarea datelor, îl puteți utiliza pentru a informa următorul pas. Puteți șterge una dintre aceste postări, o puteți edita sau actualiza. Puteți pur și simplu să transmiteți postări în aplicația dumneavoastră web.

Să zicem că ați vrut să preluați cea mai recentă postare. Puteți utiliza acest lucru:

GET /wp/v2/posts/?per_page=1

POST

Utilizați comanda POST pentru a adăuga date sau resurse noi pe site-ul dumneavoastră.

Așadar, de exemplu, dacă doriți să creați o postare, ar trebui să începeți să utilizați o comandă POST:

POST /wp/v2/posts/

Aceasta ar crea o nouă postare goală.

Puteți actualiza postarea folosind o comandă PUT pentru a o edita.

Cu o comandă POST, puteți adăuga, de asemenea, alte resurse în afară de postări, inclusiv atașamente și alte tipuri de post-uri.

Pentru a adăuga o pagină pe site-ul dumneavoastră , puteți utiliza următoarea comandă:

POST /wp/v2/posts/pages

PUT

Comanda PUT vă permite să editați o resursă existentă, inclusiv postări.

Să presupunem că aveți o serie de postări pe site-ul dumneavoastră. Doriți să le verificați și să actualizați una pentru a fi publicată.

Puteți începe prin a obține o listă cu toate mesajele proiectate:

POST /wp/v2/posts/?status=”draft”

Sistemul vă va oferi o listă a tuturor postărilor curente. Puteți schimba starea uneia dintre ele utilizând ID-ul său:

PUT /wp/v2/posts/567

Această comandă accesează acea postare și vă permite să o editați. Puteți apoi să schimbați starea folosind argumentul de stare:

{

“status” = “publish”

}

DELETE

Comanda DELETE face ceea ce v-ați aștepta: șterge o resursă. În mod implicit, dacă o utilizați pentru a șterge o postare, o va pune în coșul de gunoi, în loc să o șteargă definitiv.

Deci, dacă doriți să mutați postarea pe care tocmai ați creat-o în coșul de gunoi, veți folosi această comandă:

DELETE /wp/v2/posts/567

Când să nu utilizați WordPress REST API

WordPress REST API nu va fi întotdeauna o abordare corectă pentru dezvoltarea unui site web sau a unei aplicații. Iată câteva considerente de care ar trebui să fiți conștienți înainte de a o utiliza pentru dezvoltare:

Compatibilitatea

Dacă aplicația dumneavoastră va fi utilizată pe dispozitive care nu rulează JavaScript sau de către utilizatorii care ar putea să o dezactiveze, atunci nu va rula dacă utilizați REST API.

Un site WordPress codificat în PHP va scoate HTML, astfel încât acesta să nu sufere de această problemă. Dispozitivele care nu folosesc JavaScript sunt din ce în ce mai rare, dar dacă dezvoltați special pentru acestea, API REST nu va funcționa.

În mod similar, dacă utilizatorii dumneavoastră vor dezactiva JavaScript, atunci lucrul cu API REST va cauza probleme. Unii utilizatori dezactivează JavaScript în browserele lor din motive de accesibilitate sau securitate.

Accesibilitatea

Site-urile sau aplicațiile dezvoltate folosind JavaScript nu sunt întotdeauna la fel de accesibile ca cele transmise în HTML.

Acest lucru se datorează în mare măsură modului în care JavaScript este folosit pentru a furniza conținut dinamic, care poate să nu fie redat frumos pe ecranele utilizatorilor și poate cauza probleme persoanelor cu deficiențe de vedere sau epilepsie fotosensibilă.

Utilizarea API REST pentru a accesa site-ul dumneavoastră WordPress și a datelor de ieșire într-un formular conceput pentru a fi accesibil înseamnă că puteți depăși aceste probleme, dar merită să verificați accesibilitatea site-ului dumneavoastră în timp ce îl dezvoltați.

SEO

Aplicațiile cu o singură pagină, care se reîmprospătează frecvent, pot provoca uneori probleme SEO. Acest lucru se datorează faptului că conținutul care nu este livrat la prima ieșire a paginii poate să nu fie indexat de motoarele de căutare.

Google dar și alte motoare de căutare sunt la curent cu faptul că multe site-uri web sunt acum bazate pe SPA și le indexează în mod corespunzător. Însă ar fi bine să plătiți și să faceți un audit SEO complet al oricărui site pe care îl dezvolți folosind API-ul REST.

Cum dezactivați WordPress REST API

Dacă nu doriți ca aplicațiile să poată accesa date de pe site-ul dumneavoastră utilizând REST API, îl puteți dezactiva. Nu uitați că datele publice ar putea fi accesate de către oricine, nu doar de către dumneavoastră..

Pentru a face acest lucru, puteți instala plugin-ul Disable WP REST API. Aceasta dezactivează REST API pentru oricine nu este conectat la site-ul dumneavoastră.

În mod alternativ, puteți adăuga unele coduri în fișierul funcțiilor temei sau puteți scrie propriul plugin. Este mai bine să scrieți un plugin, deoarece aceasta nu este o funcționalitate specifică temei.

În pluginul dumneavoastră, adăugați doar următoarele două linii de cod:

add_filter( ‘json_enabled’, ‘__return_false’ );

add_filter( ‘json_jsonp_enabled’, ‘__return_false’ );

Aplicații din lumea reală care folosesc WordPress REST API

WordPress.com

Ecranele de administrare WordPress.com sunt construite integral folosind REST API pentru a oferi un SPA cu care utilizatorii interacționează pentru a-și gestiona site-ul.

Această tehnologie este ideală pentru o comunicare dinamică între interfață și server și are ca rezultat o interfață prietenoasă pe care WordPress.org o poate imita în timp.

Block Editor – Gutenberg – 

De asemenea, în ecranele de administrare WordPress, dar și în WordPress, găzduit de sine stătător, editorul de blocuri Gutenberg folosește REST API pentru a comunica cu baza de date și a crea blocuri noi.

Pentru ca tipurile de post să lucreze cu editorul Gutenberg, acestea trebuie să aibă REST API activat. Ceea ce înseamnă că, dacă înregistrați un tip de post personalizat și utilizați Gutenberg, va trebui să adăugați următoarea linie pentru a activa editorul de blocuri pentru acel tip de post:

“show_in_rest” = true;

Pentru cine nu știe, companiile serioase de hosting oferă planuri special optimizate pentru găzduirea site-ului dumneavoastră WordPress. 

THC.ro ofera planuri de găzduire special optimizate pentru WordPress