WordPressissä ulkoiset API-pyynnöt ovat yhteyksiä, joita sivustosi muodostaa oman palvelimesi ulkopuolisiin palveluihin WordPressin HTTP-API:n avulla (wp_remote_get(), wp_remote_post() jne.).
Esimerkkejä:
WordPress-päivitysten tarkistaminen osoitteesta api.wordpress.org
Premium-lisäosien lisenssien vahvistaminen
Premium-lisäosien päivitysten tarkistaminen
Maksuportaalien kanssa tapahtuva viestintä (Stripe, Klarna jne.)
Tietojen lähettäminen CRM-järjestelmiin, analytiikka- tai markkinointialustoille
Valuuttakurssien, säätietojen tai muiden kolmansien osapuolten tietojen hakeminen
Mitä tehdä, jos ulkoinen API vastaa hitaasti
Jos ulkoinen API vastaa hitaasti, paras tapa on yleensä vähentää vaikutusta verkkosivustoon sen sijaan, että odotettaisiin API:ta pidempään.
Yleisiä ratkaisuja:
Tallenna API-vastaus välimuistiin, jotta WordPress ei kutsu API:ta jokaisen sivun lataamisen yhteydessä
Suorita API-kutsu asynkronisesti WP-Cronin, Action Schedulerin tai taustatehtävien kautta sen sijaan, että se tapahtuisi kävijöiden pyyntöjen aikana
Ota käyttöön uudelleenkokeilut ja sujuvat varajärjestelmät, jos API on tilapäisesti poissa käytöstä
Seuraa API:n vasteaikoja ja ota yhteyttä palveluntarjoajaan, jos palvelu on jatkuvasti hidasta
Tallenna kriittiset tiedot paikallisesti ja synkronoi ne säännöllisesti sen sijaan, että ne haettaisiin reaaliaikaisesti jokaisen pyynnön yhteydessä
Jos olet todennut, että hidas API-pyyntö ei johdu ristiriidasta tai hitaasta tietokantakyselystä sivustolla, ota yhteyttä API-palveluntarjoajaan tämän ongelman vuoksi.
WP_HTTP_BLOCK_EXTERNAL
Jos WP_HTTP_BLOCK_EXTERNAL on käytössä, lähtevät pyynnöt estetään, ellei kohdepalvelinta ole nimenomaisesti sallittu WP_ACCESSIBLE_HOSTS-asetuksessa. Tämän seurauksena ulkoisiin palveluihin perustuvat lisäosat tai mukautetut toiminnot, kuten maksuportaalien sovellusrajapinnat tai SMTP, saattavat lakata toimimasta oikein. Esimerkiksi tämä estää laajennusten ja ytimen toiminnan, jos et lisää api.wordpress.org-osoitetta.
Esimerkkimääritelmät wp-config.php-tiedostossa:
/**
* Estää WordPressin ulkoiset pyynnöt ja sallii vain
* *.wordpress.org-URL-osoitteet, esim. wp_remote_get-funktiolle
*/
define( ‘WP_HTTP_BLOCK_EXTERNAL’, true );
define( ‘WP_ACCESSIBLE_HOSTS’, ‘*.wordpress.org’ );
Varoitus!
WP_HTTP_BLOCK_EXTERNAL-asetuksen käyttö ilman kaikkien tarvittavien WP_ACCESSIBLE_HOSTS-määritelmien määrittämistä aiheuttaa toimintahäiriöitä lisäosissa tai mukautetuissa toiminnoissa, joiden toiminta perustuu ulkoisiin API-pyyntöihin.
