...
✅ WEB ja WordPressi uudised, teemad, pistikprogrammid. Siin jagame näpunäiteid ja parimaid veebisaidi lahendusi.

Kuidas lisada kohandatud lõpp-punkte WordPressi API-sse

21

Hiljuti töötasin ühe projektiga, kus tahtsime kasutada esiotsa AngularJS-i ja taustaprogrammina WordPressi. Andmete vahetamiseks AngularJS ja WordPress vahel kasutasime WordPress REST API-d. See oli hea kogemus WordPressis REST API-ga töötamisel. WordPress pakub väga puhast ja tõhusat viisi REST API kasutamise alustamiseks. See populaarne CMS võimaldab teil luua ka kohandatud lõpp-punkti andmete edastamiseks / vastuvõtmiseks selle kaudu.

Selles artiklis uurime, kuidas WordPressi REST-i API-s kohandatud lõpp-punkti luua. Kavatsen GET- ja POST-päringute jaoks kohandatud lõpp-punkti luua.

WordPress REST API kasutamine

Kõik teavad mobiilirakenduste ja JavaScripti raamistike populaarsusest. Mobiilirakenduse või veebisaidi loomisel JavaScripti raamistiku abil peate andmevahetuse jaoks suhtlema taustaprogrammiga.

Taustaprogrammi jaoks saab valida mis tahes platvormi nagu WordPress, Laravel. Ainus nõue on, et teil peaks olema taustaprogrammil API-otspunkte, et frontendiga andmeid vahetada. Eessüsteemi süsteem annab API-kõne taustaprogrammile. Taustaprogrammil peaksime ehitama süsteemi, mis võtab vastu API taotlused ja töötleb neid.

Enamasti kasutasime API-lõpp-punktides kahte tüüpi taotlusi – GET ja POST. Kuigi me kutsume API-d GET-päringuga, annab API vastuseks andmebaasist andmed või kustutab need andmebaasis. POST-päringute korral kas sisestame andmebaasi kirjeid või kontrollime andmeid andmebaasi järgi. Muidugi pole see pöidla reegel. Kasutajad saavad otsustada, kuidas see käitub, sõltuvalt nende nõudmistest.

Volitamine WordPress REST API abil

WordPressi REST API nõuab, et järgiksite Auth. Põhivoogu. Rakenduses Basic Auth peate API-päringu saatmisel saatma loa päises autoriseerimise. Käivitades WordPress 5.6, võetakse süsteemi kasutusele uus funktsioon „Rakenduse paroolid". Seda rakenduse parooli (koos kasutajanimega) saab kasutada loana päises loa.

Rakenduse paroolid on saadaval kõigile kasutajatele saitidel, mida teenindatakse SSL / HTTPS kaudu. Kui te mingil põhjusel ei kasuta oma veebisaidil SSL-i, siis muudate selle alloleva filtri abil kättesaadavaks.

add_filter( 'wp_is_application_passwords_available', '__return_true' );

Rakenduse paroolide valiku leiate lehelt Kasutajad-> Profiil. Looge parool, sisestades lihtsalt rakenduse nime.

Kuidas lisada kohandatud lõpp-punkte WordPressi API-sse

Ekraanipildil märkate parooli tühikuid. Rakenduse paroole saab kasutada tühikutega või ilma. Kui see on lisatud, eemaldatakse tühikud lihtsalt enne, kui WordPressi lõpus parool räsitakse ja kinnitatakse.

Nüüd olete parooliga valmis. Järgmisena peate Auth-loa loomiseks looma oma kasutajanime ja rakenduse parooli Base64 kodeeritud versiooni. Oletame, et teie kasutajanimi on ‘admin’ ja parool on ‘Ho9c 9vGs AOBG nXb0 FPpr W5vO’. Kasutage järgmist lauset, mis annab teile lõpliku kehtiva loa.

<?php
$username = 'admin';
$application_password = 'Ho9c 9vGs AOBG nXb0 FPpr W5vO';
 
echo base64_encode($username.':'.$application_password);

Ülaltoodud lause tagastab sümboolse väärtuse kujul YWRtaW46SG85YyA5dkdzIEFPQkcgblhiMCBGUHByIFc1dk8=. Selle loa, mille peate WordPressi REST-i API-i kutsumisel saatma päises Volitus.

Sisselogimine WordPressi REST API abil

Oleme valmis põhiõiguse loa väärtusega. Ehitame nüüd sisselogimissüsteemi jaoks kohandatud lõpp-punkti. Alljärgnevas koodis kirjutame API lõpp-punkti, mis võtab vastu kasutaja mandaadid ja kontrollib, kas üksikasjad on õiged või mitte. Peate selle koodi oma teemafaili lisama functions.php.

add_action(
    'rest_api_init',
    function() {
        register_rest_route(
            'api',
            'login',
            array(
                'methods'  => 'POST',
                'callback' => 'login',
            )
        );
    }
);

WordPress pakub toimingut ‘rest_api_init’, mille abil saame luua oma kohandatud lõpp-punktid. Siin kasutan funktsiooni register_rest_route, mis loob ülaltoodud API lõpp-punkti YOUR_SITE_URL / wp-json / api / login.

Meie koodis on ‘api’ nimeruum, ‘login’ on marsruut, meetod on ‘POST’ ja tagasihelistamisfunktsioon on ‘login’. Tagasihelistamismeetodil on tegelik loogika.

Sisselogimisvoo loogika kirjutamiseks on vaja POST-i parameetreid e-posti aadressi ja parooli, mis tuleks saata eesservast koos päisega Authorization. Nende andmete postitamise ajal peate need saatma JSON-vormingus. Näiteks VSCode-st, kasutades Rest Client Extensioni, saadan POST-päringu, nagu on näidatud alloleval ekraanipildil.

Kuidas lisada kohandatud lõpp-punkte WordPressi API-sse

Siin oleme eelmises etapis loodud loa edastanud päise autoriseerimise väärtusena.

Lisage faili allpool toodud login()meetodi kood functions.php.

function login( WP_REST_Request $request) {
    $arr_request = json_decode( $request->get_body() );
 
    if (! empty( $arr_request->email) &&! empty( $arr_request->password)) {
        // this returns the user ID and other info from the user name.
        $user = get_user_by( 'email', $arr_request->email );
 
        if (! $user) {
            // if the user name doesn't exist.
            return [
                'status' => 'error',
                'message' => 'Wrong email address.',
            ];
        }
 
        // check the user's login with their password.
        if (! wp_check_password( $arr_request->password, $user->user_pass, $user->ID)) {
            // if the password is incorrect for the specified user.
            return [
                'status' => 'error',
                'message' => 'Wrong password.',
            ];
        }
 
        return [
            'status' => 'success',
            'message' => 'User credentials are correct.',
        ];
    } else {
        return [
            'status' => 'error',
            'message' => 'Email and password are required.',
        ];
    }
}

Märkus. Kui kuvati tõrge, nagu „URL-i ja taotlusmeetodile vastavat marsruuti ei leitud”, peate oma püsilinki värskendama.

Oleku võtme edukuse väärtuse saamisel saate kasutaja logida eesseadme rakendusse.

Koostage GET-päringu lõpp-punkt

Oleme näinud, kuidas POST-päringute jaoks kohandatud lõpp-punkte luua. Nüüd uurime GET-päringut WordPress REST API abil. Selle jaoks kirjutan API, mis kustutab kasutaja. Eesosast peaksite GET-parameetrina edastama kasutaja ID.

add_action(
    'rest_api_init',
    function() {
        register_rest_route(
            'api',
            'delete_user/(?P<id>d+)',
            array(
                'methods'  => 'GET',
                'callback' => 'delete_user',
            )
        );
    }
);

See kood genereerib API lõpp-punkti kujul YOUR_SITE_URL / wp-json / api / delete_user / id. Sellesse lõpp-punkti peaks ID asemel sisestama kasutaja tegeliku ID.

Tagasihelistamismeetodil delete_useron järgmine kood.

function delete_user( $data) {
    // delete the user
    require_once(ABSPATH.'wp-admin/includes/user.php' );
    if (wp_delete_user($data['id'])) {
        return [
            'status' => 'success',
            'message' => 'User deleted successfully.',
        ];
    }
 
    return [
        'status' => 'error',
        'message' => 'It seems you passed the wrong user id.',
    ];
}

Loodan, et saate aru, kuidas WordPress REST API-s kohandatud lõpp-punkti luua. Palun jagage oma mõtteid ja ettepanekuid allpool olevas kommentaaride jaotises.

seotud artiklid

See veebisait kasutab teie kasutuskogemuse parandamiseks küpsiseid. Eeldame, et olete sellega rahul, kuid saate soovi korral loobuda. Nõustu Loe rohkem