Vodič za WordPress REST API
WordPress REST API će bez sumnje promeniti način na koji WordPress danas funkcioniše, kako u pogledu njegovog koda, tako i pogledu načina na koji koristimo WordPress.
Ukoliko do sada niste radili sa WordPress REST API-jem možda vam nije baš najjasnije o čemu se radi. Zato ćemo u ovom tekstu objasniti sve što je potrebno da znate o WordPress API-ju.
Šta je WordPress REST API?
Pretpostavljamo da ne moramo posebno da predstavljamo REST API, jer smo u nekoliko tekstova na našem blogu već pisali na temu REST API-ja. Ukoliko niste već upoznati sa ovim pojmom, pročitajte Kako da koristite REST API – vodič za početnike, a zatim saznajte i kako da kreirate Napredni REST API dizajn.
WordPress REST API je interfejs koji developeri mogu da koriste da pristupe WordPress-u izvan same WordPress instalacije. Možete da pristupite korišćenjem JavaScript-a, što znači da može biti korišćen za kreiranje interaktivnih web sajtova i aplikacija.
Ukratko, WordPress REST API omogućava pristup i manipulaciju podacima na WordPress sajtu putem HTTP zahteva. Ovaj API omogućava eksternim aplikacijama, kao što su mobilne aplikacije ili druge web aplikacije, da komuniciraju sa WordPress sajtom i koriste njegove funkcionalnosti.
REST API i WordPress
WordPress REST API je set koda dizajniran da ostalim sistemima omogući interfejs sa WordPress-om na način da i WordPress i taj drugi sistem razumeju jedan drugog.
To znači da, na primer, third-party web sajt ili mobilna aplikacija mogu da pristupe vašoj WordPress bazi podataka, fetch-uje podatke iz nje i upiše nove podatke u nju.
Kako radi WordPress REST API?
Pre svega, WordPress REST API je razvijen kao odgovor na način na koji su razvijeni web sajtovi i druge aplikacije i potrebom da se WordPress više otvori za njih.
Šta je prethodilo razvoju WordPress REST API-ja?
Evo prilike da prođemo malo kroz kratku istoriju razvoja WordPress REST API-ja.
WordPress REST API je objavljen kao deo core-a WordPress-a u verziji 4.7, još u decembru 2016. godine. Pre toga je postojao, ali u formi WordPress plugina.
Dizajniran je da podrži veliki broj aplikacija izrađenih na WordPress-u i da transformiše WordPress iz CMS-a ka platformi za aplikacije.
Dosta je bio korišćen od strane WordPress.com čiji interfejs zasnovan na JavaScript-u koristi REST API da uspostavi interfejs sa WordPress bazom podataka. Takođe je bio korišćen i od strane Gutenberg interfejsa, koji je od 2019. takođe postao deo WordPress core-a.
REST API proširuje način na koji se sve može primeniti WordPress. Dok CMS odlično pokreće čak i složene web sajtove, istovremeno platforma za aplikacije može biti korišćena za pokretanje SPA (single-page aplikacija) zasnovanih na web-u.
Kod takvih aplikacija, umesto učitavanja nove stranice, sadržaj se osvežava samo kada korisnik preduzme neku akciju. Zbog toga što koristi JavaScript umesto PHP-a, ova aktivnost se odvija u browseru, a ne na serveru. Osim toga što takav pristup smanjuje potrebu za dodatnim serverskim resursima, ujedno i ubrzava rad aplikacije i poboljšava korisničko iskustvo.
Izmene koje WordPress REST API donosi za WordPress korisnike i developere
Ukoliko ste korisnik ili developer koji radi sa WordPress-om, REST API donosi brojne izmene sa kojima se možete sresti tokom rada.
Za korisnike ove izmene predstavljaju:
- Izmene u interfejsu, uključujući i Gutenberg editor
- Izmene i poboljšanja za WordPress mobilne aplikacije
Za developere ove izmene su nešto značajnije:
- Mogućnost kreiranja SPA pomoću REST API-ja
- Mogućnost integracije WordPress-a sa drugim front-end tehnologijama i sistemima
- Mogućnost razvoja sa WordPress-om, ukoliko ste front-end developer koji ne radi u PHP-u
- Učenje JavaScript-a ukoliko ste PHP developer u ovom slučaju može biti neophodan korak
- Neke specifične izmene, kao na primer potreba za izradom Gutenberg blokova umesto meta box-ova u stranicama i ekranima za uređivanje postova.
Činjenica da postoji WordPress REST API će vremenom značiti da će veći deo WordPress core-a biti napisan u JavaScript-u a ne u PHP-u. Ukoliko ste WordPress developer (PHP developer), to znači da ćete pre ili kasnije morati da naučite i JavaScript.
Kako da pristupite WordPress REST API-ju
Da biste pristupili WordPress REST API-ju moraćete da pristupite svom sajtu preko komandne linije. Kod WordPress-a ovo se zove WP-CLI.
Hajde da vidimo kako da počnete.
Pristupanje WP-REST-u preko WP-CLI
WP-CLI je interfejs komandne linije za WordPress. Omogućava vam da pristupite i radite sa WordPress-om putem interfejsa komandne linije (CLI) na vašem računaru.
Da biste pristupili svom web sajtu, potrebno je samo da iz komandne linije ispratite ispravnu strukturu foldera na svom web serveru. Dobra je ideja da eksperimentišete sa REST API-jem na lokalnom serveru pre nego što ga isprobate na produkcionom/live serveru.
Da biste pristupili direktno REST API-ju na svom sajtu treba da kucate sledeću komandu:
http://nekisajt.rs/wp-json/wp/v2
Zatim je potrebno da nakon ovoga kucate dodatne elemente da biste pristupili određenom tipu podataka. Ti elementi se zovu endpoints. Na primer, wp-json/wp/v2/posts
endpoint se koristi za dobijanje liste svih postova na WordPress sajtu.
Autentifikacija
Kada pristupite svom web sajtu možda će biti potrebno da prođete kroz proces autentifikacije. Neki endpoints su javni i ne zahtevaju autentifikaciju, dok neki zahtevaju.
Važno je da znate da se kod REST API-ja ne logujete na admin stranu svog sajta. Tu je proces nešto drugačiji.
Da biste mogli da autentifikujete svoj sajt preko WP-CLI-a potrebno je da instalirate plugin za autentifikaciju. Za rad na lokalnom serveru možete koristiti i plugin poput Basic Auth.
Sa druge strane, da biste to isto uradili u produkcionom okruženju (na live serveru) bilo bi dobro da koristite neko naprednije rešenje, poput JWT Authentication plugina. On koristi JSON Web Token i mnogo je sigurniji.
Zatim možete upotrebiti komandnu liniju da pristupite podacima, uključujući i autentifikaciju.
Primer ispod koristi curl
da bi testirao konakciju ka WordPress-u. Izbaciće listu draft postova.
curl -X GET --user username:password -i http://nekisajt.rs/wp-json/wp/v2/posts?status=draft
Draft postovi ne spadaju u javne podatke, pa vam je potrebno da prođete proces autentifikacije da biste im pristupili. Ako su vam sa druge strane potrebni podaci koji su javni, u tom slučaju vam nije potrebno da prođete autentifikaciju. Da biste dobili listu postova koji su objavljeni, možete da koristite:
curl -X GET http://nekisajt.rs/wp-json/wp/v2/posts
To će fetch-ovati sve objavljene postove, jer su oni javni.
Pregled WordPress REST API komandi
Kada pristupite svom web sajtu, biće potrebno da znate neke REST API komande da biste mogli da ostvarite interakciju sa njim.
Komande koje ćete sigurno koristiti su:
GET
– vraća resurs kao što je post ili neki drugi podatak
POST
– šalje resurs (post, prilog ili neki drugi resurs) na server
PUT
– može da se koristi za uređivanje ili ažuriranje resursa koji je već na serveru
DELETE
– uklanja resurs sa servera.
GET
GET
je verovatno jedna od najčešće korišćenih komandi. Kako smo pomenuli ona vraća (uzima) resurs. U primeru ispod (koji možete koristiti nakon što ste uspešno pristupili svom sajtu) će fetch-ovati listu svih objavljenih stranica na vašem sajtu.
GET http://nekisajt.rs/wp-json/wp/v2/posts/?status=published
Obratite pažnju da nismo uneli punu putanju ka sajtu, jer ste mu već pristupili preko WP-CLI.
Kada ste dobili te podatke, sada možete da preduzmete neki od narednih koraka. Recimo, možete da obrišete neki od tih postova, uredite ih ili ažurirate. Takođe, možete jednostavno izbaciti taj post ka svojoj web aplikaciji.
Recimo da želite da fetch-ujete poslednji post. Možete da koristite sledeću komandu:
GET http://nekisajt.rs/wp-json/wp/v2/posts/?per_page=1
Postoji veliki broj argumenata koje možete da koristite u radu sa postovima. Za spisak svih argumenata konsultujte WordPress REST API Handbook.
POST
Koristite POST
da biste dodali novi podatak ili resurs na vaš sajt.
Na primer, ukoliko želite da kreirate post, možete početi tako što ćete upotrebiti POST
komandu:
POST http://nekisajt.rs/wp-json/wp/v2/posts
To će kreirati novi, prazan draft post.
Zatim možete da ažurirate post korišćenjem PUT
komande da biste ga uredili.
Pomoću POST
komande takođe možete dodati i druge resurse, kao što su prilozi.
Da biste dodali stranicu na vaš sajt, možete koristiti recimo ovakvu komandu:
POST http://nekisajt.rs/wp-json/wp/v2/posts/pages
To će kreirati praznu stranicu, na isti način na koji ste kreirali prazan post.
PUT
PUT
komanda vam omogućava da uredite postojeći resurs, uključujući postove.
Recimo da na svom web sajtu imate veliki broj draft postova. Sada želite da ih proverite i ažurirate jedan da biste ga objavili.
Možete početi tako što ćete fetch-ovati listu draft postova:
GET http://nekisajt.rs/wp-json/wp/v2/posts/?status="draft"
Sistem će vam dati listu postojećih draft postova. Možete promeniti status nekog od njih koristeći njegov ID:
PUT http://nekisajt.rs/wp-json/wp/v2/posts/567
Ova komanda će pristupiti tom konkretnom postu i omogućiti vam da ga uredite. Zatim možete da promenite njegov status koristeći argument statusa:
{
"status" = "publish"
}
Ili možete da dodate sadržaj u post i objavite ga.
{
"status" = "publish"
"content" = "content here"
}
Server će potom vratiti poruku 200-OK, što znači da je PUT
zahtev uspešno uredio post.
DELETE
Komanda DELETE
radi upravo ono što joj i samo ime kaže: briše resurs. Podrazumevano, ako je koristite za brisanje posta, taj post će biti stavljen u trash, umesto da ga trajno obriše.
Ako želite da obrišete post i smestite ga u trash, kucaćete sledeću komandu:
DELETE http://nekisajt.rs/wp-json/wp/v2/posts/567
Sa druge strane, ako ipak želite da post obrišete trajno (da zaobiđete trash), koristićete istu komandu, ali sa dodatkom force
argumenta:
DELETE http://nekisajt.rs/wp-json/wp/v2/posts/567?force=true
Ovo će trajno obrisati post bez opcije da uradite undo, pa ovu opciju treba da pažljivo koristite.
Zaključak
Kao što ste videli WordPress REST API donosi neke zanimljive opcije, kako za WordPress korisnike, tako i za WordPress developere. Bez sumnje donosi potpuno novu budućnost za WordPress jer će drastično izmeniti način na koji trenutno radimo i na koji razvijamo WordPress.
Da li ste već imali prilike da koristite WordPress REST API? Podelite u komentarima svoja iskustva.
Bez komentara