Kako postaviti i koristiti WordPress REST API: Osnovna provjera autentičnosti

Kako postaviti i koristiti WordPress REST API: Osnovna provjera autentičnosti

U ovom ću blog postu pokazati kako omogućiti korištenje WordPress REST API-ja sa CRUD (Create, Read, Update, Delete) mogućnostima dok za neki od sljedećih blog postova planiram napraviti jednostavnu Ionic aplikaciju koja će koristiti ovdje kreiran API.

Dokumentacija koju koristim za ovaj blog post: REST API Handbook

Uvod

Za početak je važno znati da autentifikacija nije isto što i autorizacija. U ovom blog postu govorit ćemo o autentifikaciji koja označava proces provjere točnosti pristupnih podataka korisnika koji traži pristup određenom sustavu. To znači da autentificirani korisnik može izvršavati CRUD operacije uz uvjet da pri svakom zahtjevu pošalje “dokaz” o valjanosti pristupnih podataka.

S druge strane, autorizacija identificira i dodjeljuje pristup resursima sustava. U slučaju WordPressa to možete vidjeti kroz različite uloge koje je moguće zadati korisnicima: pretplatnik, suradnik, autor, urednik, administrator. Vidjet ćete i kasnije da prilikom korištenja API-ja autor neće moći npr. promijeniti parametre nekog blog posta dok će urednik ili administrator to moći.

Priprema

Za pripremu su potrebni:

  • JSON Auth plugin https://github.com/WP-API/Basic-Auth
  • Korisnik s kojim ćemo vršiti autentifikaciju

Osnovna autentifikacija (Basic authentication) podrazumijeva slanje korisničkog imena i lozinke u zaglavlju (header) svakog zahtjeva (request).

Kako bi uopće omogućili osnovnu provjeru autentičnosti potrebno je instalirati plugin Basic Authentication handler (https://github.com/WP-API/Basic-Auth).

JSON Basic Authentication

Sada ćemo kreirati korisnika čije ćemo pristupne podatke (korisničko ime: TestKorisnik, lozinka: OvoJeLozinka) koristiti u zaglavlju svih zahtjeva koje ćemo slati.

WordPress REST API - Novi korisnik

Sada smo spremni i možemo testirati slanje zahtjeva koristeći Postman (A complete API Development Environment).

Kreiranje blog posta (POST /wp/v2/posts)

Za kreiranje novog blog posta potrebni su:

  • URL na koji ćemo slati zahtjev
  • Korisničko ime i lozinka
  • Tijelo poruke (naslov, sadržaj i dr.)

WordPress REST API: Osnovna provjera autentičnosti

Kao što se može vidjeti iz prethodne animacije scenarij je sljedeći.

– Zahtjev za kreiranjem novog blog posta šaljemo na URL “…/wp-json/wp/v2/posts/”
– Koristimo korisničko ime “TestKorisnik” i lozinku “OvoJeLozinka” koji se pretvaraju u base64 string oblika “Basic VGVzdhaXMuYWxhbUBjbG91ZHdheXMuY29tOmVKNWtuU24zNVc=” koji ide u zaglavlje zahtjeva.
– S obzirom da se ovdje radi o kreiranju novog blog posta uz zaglavlje šaljemo i tijelo (body) poruke koje se sastoji od dvije stavke, naslova i statusa.
– Na kraju dobijemo status 201 što znači da je blog post uspješno kreiran što se može vidjeti unutar sučelja WordPressa.

Uređivanje blog posta (POST /wp/v2/posts/id)

Za uređivanje postojećeg blog posta potrebni su:

    WordPress REST API ID

  • URL na koji ćemo slati zahtjev
  • ID blog posta kojeg želimo urediti
  • Korisničko ime i lozinka
  • Tijelo poruke (neki od parametara)

WordPress REST API UPDATE

Kao što se može vidjeti iz prethodne animacije scenarij je sljedeći.

– Zahtjev za kreiranjem novog blog posta šaljemo na URL “…/wp-json/wp/v2/posts/id”
– Koristimo korisničko ime “TestKorisnik” i lozinku “OvoJeLozinka” koji se pretvaraju u base64 string oblika “Basic VGVzdhaXMuYWxhbUBjbG91ZHdheXMuY29tOmVKNWtuU24zNVc=” koji ide u zaglavlje zahtjeva.
– S obzirom da se ovdje radi o uređivanju postojećeg blog posta uz zaglavlje šaljemo i tijelo (body) poruke koje se može sastojati od nekoliko parametara. Konkretno u ovom primjeru promijenit ćemo autora i kategoriju blog posta.
– Na kraju dobijemo status 200 što znači da je blog post uspješno uređen što se može vidjeti unutar sučelja WordPressa.

Vratimo se nakratko na pitanje autorizacije. Kada sam u jednom od prethodnih koraka kreirao korisnika “TestKorisnik” stavio sam mu ulogu “Autor” međutim korisnik s tom ulogom nema sva prava i nije u mogućnosti izvršiti gore navedenu radnju jer dobije poruku sa statusom 403.

Međutim, kada sam mu dodijelio ulogu “Urednik” korisnik je bez problema mogao putem API-ja izvršiti uređivanje blog posta.

Brisanje blog posta (DELETE /wp/v2/posts/id)

Za brisanje postojećeg blog posta potrebni su:

  • URL na koji ćemo slati zahtjev
  • ID blog posta kojeg želimo urediti
  • Korisničko ime i lozinka

WordPress REST API DELETE

Kao što se može vidjeti iz prethodne animacije scenarij je sljedeći.

– Zahtjev za brisanjem postojećeg blog posta šaljemo na URL “…/wp-json/wp/v2/posts/id”
– Koristimo korisničko ime “TestKorisnik” i lozinku “OvoJeLozinka” koji se pretvaraju u base64 string oblika “Basic VGVzdhaXMuYWxhbUBjbG91ZHdheXMuY29tOmVKNWtuU24zNVc=” koji ide u zaglavlje zahtjeva.
– Na kraju dobijemo status 200 što znači da je blog post uspješno obrisan što se može vidjeti unutar sučelja WordPressa.

Dohvaćanje svih blog postova (GET /wp/v2/posts)

Za dohvaćanje svih blog postova potreban je samo URL na koji će se slati zahtjev.

WordPress REST API GET

Dohvaćanje jednog blog posta (GET /wp/v2/posts/id)

Za dohvaćanje jednog blog posta potrebni su:

  • URL na koji ćemo slati zahtjev
  • ID blog posta kojeg želimo prikazati
  • Korisničko ime i lozinka

WordPress REST API GET Single

Objavio

Tomislav Stanković

Web developer. Uz to bavi se i temama vezanim uz online reputaciju. Google+

Odgovori

Vaša adresa e-pošte neće biti objavljena. Nužna polja su označena s *