Siirry pääsisältöön

WordPress REST API:n käyttö

Opi käyttämään WordPress REST API -rajapintaa Seravon ympäristössä. Ohje käsittelee välimuistinhallinnan, ?nocache-parametrin, sovellussalasanat sekä yleisimpien virhetilanteiden (401, 403, 404, 429) vianetsinnän.

Päivitetty yli viikko sitten

WordPress REST API on rajapinta, joka mahdollistaa sivuston datan (kuten artikkelien, sivujen ja käyttäjien) lukemisen ja muokkaamisen JSON-muodossa. Se on avainasemassa nykyaikaisessa WordPress-kehityksessä, käytitpä sitten lohkomuokkainta (Gutenberg), ulkopuolisia integraatioita tai headless-ratkaisuja.

Sivustosi REST API löytyy oletuksena osoitteesta: https://esimerkki.fi/wp-json/

Välimuistitus ja REST API

Seravo käyttää tehokasta nginx-pohjaista HTTP-välimuistia. Tämä vaikuttaa REST API -kyselyihin seuraavasti:

Välimuistitus

Oletuksena API:n GET-pyynnöt tallentuvat välimuistiin suorituskyvyn parantamiseksi.

Välimuistin ohitus

Jos haluat varmistaa, että saat aina tuoreimman datan ohi välimuistin, lisää kyselyn perään parametri ?nocache=1. Tämä on erityisen hyödyllistä kehitysvaiheessa tai dynaamisissa sovelluksissa.

Päivitykset ja tyhjennys

Huomioithan, että artikkelin päivittäminen WordPressissä ei välttämättä tyhjennä REST API:n välimuistia automaattisesti. Tarvittaessa voit tyhjentää välimuistin manuaalisesti komentoriviltä komennolla wp-purge-cache tai Seravo Pluginin kautta.

Välimuistin toiminnan todentaminen

Voit tarkistaa, tuleeko vastaus välimuistista tarkastelemalla HTTP-vastauksen otsakkeita (headers) esimerkiksi curl-komennolla:

curl -I https://esimerkki.fi/wp-json/wp/v2/posts/123

Tarkista nämä otsakkeet:

  • x-proxy-cache: Jos arvona on HIT, vastaus tuli välimuistista. Jos arvo on MISS tai BYPASS (esim. ?nocache=1 parametrin kanssa), pyyntö meni suoraan WordPressille asti.

  • Cache-Control: Tämä otsake määrittelee, miten vastausta saa tallentaa. Esimerkiksi no-cache, no-store tai max-age=0 estävät välimuistiin tallennuksen.

  • Pragma: Vanhempi otsake (usein no-cache), jota käytetään samankaltaiseen tarkoitukseen kuin Cache-Control. Jos tämä on asetettu, se voi estää välimuistin toiminnan.

Huomio: Jos olet asettanut nämä otsakkeet manuaalisesti teemassasi tai lisäosassasi (esim. PHP:n header()-funktiolla), ne ohjaavat sitä, miten Seravon nginx-välimuisti käsittelee rajapintavastauksia.

REST API:n rajoittaminen ja tietoturva

Oletusarvoisesti monet päätepisteet ovat julkisia. Jos sivustosi sisältää herkkää tietoa, voit rajoittaa pääsyä rajapintaan koodilla tai lisäosilla. Huomioithan kuitenkin, että monet WordPressin sisäiset toiminnot tarvitsevat REST API:a toimiakseen oikein.

Autentikointi

Kun haluat muokata tietoa (kuten luoda uuden artikkelin), pyyntö on todennettava. Suositeltu tapa tähän on Sovellusten salasanat (Application Passwords).

Näin luot sovellussalasanan:

  1. Kirjaudu WordPressin hallintaan ja mene kohtaan Käyttäjät > Profiili.

  2. Vieritä alas kohtaan Sovellussalasanat.

  3. Anna salasanalle nimi (esim. "Testi") ja klikkaa Lisää uusi sovellussalasana.

  4. Ota saatu salasana talteen (muotoa xxxx xxxx xxxx xxxx).

Käytä salasanaa pyynnön yhteydessä näin: -u "kayttajatunnus:xxxx xxxx xxxx xxxx"

Vianetsintä

401 Unauthorized

Sovellussalasana tai käyttäjätunnus on väärin, tai Authorization-otsake ei välity palvelimelle asti. Varmista, että käytät oikeaa käyttäjätunnusta (ei sähköpostiosoitetta) ja juuri luotua sovellussalasanaa.

404 Not Found

Varmista, että WordPressin osoiterakenne (Permalinks) on asetettu muuksi kuin Riisuttu. REST API:n standardiosoitteet (kuten /wp-json/) vaativat polkupohjaisen osoiterakenteen toimiakseen. Jos osoiterakennetta ei voida muuttaa, rajapintaa on kutsuttava muodossa /?rest_route=/.

403 Forbidden

Pyyntö estettiin puuttuvien oikeuksien tai tietoturvasuodattimen vuoksi.

  • Käyttöoikeudet: Varmista, että käyttäjällä on oikeus suorittaa kyseinen toiminto (esim. artikkelin muokkaus).

  • Sovelluspalomuuri (WAF): Seravon sovelluspalomuuri saattaa estää pyynnön, jos se tulkitaan haitalliseksi. Jos saat tämän virheen ilman selvää syytä, ota yhteyttä asiakaspalveluumme.

429 Too Many Requests

Olet tehnyt liian monta pyyntöä lyhyen ajan sisällä. Automaattinen suojaus rajoittaa pyyntöjen määrää suojellakseen sivustoa ylikuormitukselta. Jos integraatiosi vaatii suuria pyyntömääriä, ole yhteydessä asiakaspalveluumme rajojen tarkistamiseksi.

Lue lisää aiheesta

Jos haluat syventyä tarkemmin REST API:n tekniseen toteutukseen ja koodiesimerkkeihin, suosittelemme tutustumaan seuraaviin resursseihin:

Tarvitsetko apua?

Ota yhteyttä asiakaspalveluumme lähettämällä viestiä osoitteeseen [email protected].

Vastasiko tämä kysymykseesi?