{"id":26268,"date":"2021-06-14T16:45:00","date_gmt":"2021-06-14T13:45:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=26268"},"modified":"2021-10-17T18:17:34","modified_gmt":"2021-10-17T15:17:34","slug":"kuidas-lisada-kohandatud-lopp-punkte-wordpressi-api-sse","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/et\/kuidas-lisada-kohandatud-lopp-punkte-wordpressi-api-sse\/","title":{"rendered":"Kuidas lisada kohandatud l\u00f5pp-punkte WordPressi API-sse"},"content":{"rendered":"<p>Hiljuti t\u00f6\u00f6tasin \u00fche 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\u00f6\u00f6tamisel. WordPress pakub v\u00e4ga puhast ja t\u00f5husat viisi REST API kasutamise alustamiseks. See populaarne CMS v\u00f5imaldab teil luua ka kohandatud l\u00f5pp-punkti andmete edastamiseks \/ vastuv\u00f5tmiseks selle kaudu.<\/p>\n<p>Selles artiklis uurime, kuidas WordPressi REST-i API-s kohandatud l\u00f5pp-punkti luua. Kavatsen GET- ja POST-p\u00e4ringute jaoks kohandatud l\u00f5pp-punkti luua.<\/p>\n<h3>WordPress REST API kasutamine<\/h3>\n<p>K\u00f5ik teavad mobiilirakenduste ja JavaScripti raamistike populaarsusest. Mobiilirakenduse v\u00f5i veebisaidi loomisel JavaScripti raamistiku abil peate andmevahetuse jaoks suhtlema taustaprogrammiga.<\/p>\n<p>Taustaprogrammi jaoks saab valida mis tahes platvormi nagu WordPress, Laravel. Ainus n\u00f5ue on, et teil peaks olema taustaprogrammil API-otspunkte, et frontendiga andmeid vahetada. Eess\u00fcsteemi s\u00fcsteem annab API-k\u00f5ne taustaprogrammile. Taustaprogrammil peaksime ehitama s\u00fcsteemi, mis v\u00f5tab vastu API taotlused ja t\u00f6\u00f6tleb neid.<\/p>\n<p>Enamasti kasutasime API-l\u00f5pp-punktides kahte t\u00fc\u00fcpi taotlusi &#8211; GET ja POST. Kuigi me kutsume API-d GET-p\u00e4ringuga, annab API vastuseks andmebaasist andmed v\u00f5i kustutab need andmebaasis. POST-p\u00e4ringute korral kas sisestame andmebaasi kirjeid v\u00f5i kontrollime andmeid andmebaasi j\u00e4rgi. Muidugi pole see p\u00f6idla reegel. Kasutajad saavad otsustada, kuidas see k\u00e4itub, s\u00f5ltuvalt nende n\u00f5udmistest.<\/p>\n<h3>Volitamine WordPress REST API abil<\/h3>\n<p>WordPressi REST API n\u00f5uab, et j\u00e4rgiksite Auth. P\u00f5hivoogu. Rakenduses Basic Auth peate API-p\u00e4ringu saatmisel saatma loa p\u00e4ises autoriseerimise. K\u00e4ivitades WordPress 5.6, v\u00f5etakse s\u00fcsteemi kasutusele uus funktsioon \u201eRakenduse paroolid&quot;. Seda rakenduse parooli (koos kasutajanimega) saab kasutada loana p\u00e4ises loa.<\/p>\n<p>Rakenduse paroolid on saadaval k\u00f5igile kasutajatele saitidel, mida teenindatakse SSL \/ HTTPS kaudu. Kui te mingil p\u00f5hjusel ei kasuta oma veebisaidil SSL-i, siis muudate selle alloleva filtri abil k\u00e4ttesaadavaks.<\/p>\n<pre><code>add_filter( 'wp_is_application_passwords_available', '__return_true' );<\/code><\/pre>\n<p>Rakenduse paroolide valiku leiate <strong>lehelt Kasutajad-&gt; Profiil<\/strong>. Looge parool, sisestades lihtsalt rakenduse nime.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20211-6081cde961b7f.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20211-6081cde961b7f.png\" alt=\"Kuidas lisada kohandatud l\u00f5pp-punkte WordPressi API-sse\" ><\/a><\/p>\n<p>Ekraanipildil m\u00e4rkate parooli t\u00fchikuid. Rakenduse paroole saab kasutada t\u00fchikutega v\u00f5i ilma. Kui see on lisatud, eemaldatakse t\u00fchikud lihtsalt enne, kui WordPressi l\u00f5pus parool r\u00e4sitakse ja kinnitatakse.<\/p>\n<p>N\u00fc\u00fcd olete parooliga valmis. J\u00e4rgmisena peate Auth-loa loomiseks looma oma kasutajanime ja rakenduse parooli Base64 kodeeritud versiooni. Oletame, et teie kasutajanimi on &#8216;admin&#8217; ja parool on &#8216;Ho9c 9vGs AOBG nXb0 FPpr W5vO&#8217;. Kasutage j\u00e4rgmist lauset, mis annab teile l\u00f5pliku kehtiva loa.<\/p>\n<pre><code>&lt;?php\n$username = 'admin';\n$application_password = 'Ho9c 9vGs AOBG nXb0 FPpr W5vO';\n\u00a0\necho base64_encode($username.':'.$application_password);<\/code><\/pre>\n<p>\u00dclaltoodud lause tagastab s\u00fcmboolse v\u00e4\u00e4rtuse kujul <code>YWRtaW46SG85YyA5dkdzIEFPQkcgblhiMCBGUHByIFc1dk8=<\/code>. Selle loa, mille peate WordPressi REST-i API-i kutsumisel saatma p\u00e4ises Volitus.<\/p>\n<h3>Sisselogimine WordPressi REST API abil<\/h3>\n<p>Oleme valmis p\u00f5hi\u00f5iguse loa v\u00e4\u00e4rtusega. Ehitame n\u00fc\u00fcd sisselogimiss\u00fcsteemi jaoks kohandatud l\u00f5pp-punkti. Allj\u00e4rgnevas koodis kirjutame API l\u00f5pp-punkti, mis v\u00f5tab vastu kasutaja mandaadid ja kontrollib, kas \u00fcksikasjad on \u00f5iged v\u00f5i mitte. Peate selle koodi oma teemafaili lisama <code>functions.php<\/code>.<\/p>\n<pre><code>add_action(\n\u00a0\u00a0\u00a0\u00a0'rest_api_init',\n\u00a0\u00a0\u00a0\u00a0function() {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0register_rest_route(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'api',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'login',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0array(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'methods'\u00a0 =&gt; 'POST',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'callback' =&gt; 'login',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0);\n\u00a0\u00a0\u00a0\u00a0}\n);<\/code><\/pre>\n<p>WordPress pakub toimingut &#8216;rest_api_init&#8217;, mille abil saame luua oma kohandatud l\u00f5pp-punktid. Siin kasutan funktsiooni <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/register_rest_route\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">register_rest_route,<\/a> mis loob \u00fclaltoodud API l\u00f5pp-punkti YOUR_SITE_URL \/ wp-json \/ api \/ login.<\/p>\n<p>Meie koodis on &#8216;api&#8217; nimeruum, &#8216;login&#8217; on marsruut, meetod on &#8216;POST&#8217; ja tagasihelistamisfunktsioon on &#8216;login&#8217;. Tagasihelistamismeetodil on tegelik loogika.<\/p>\n<p>Sisselogimisvoo loogika kirjutamiseks on vaja POST-i parameetreid e-posti aadressi ja parooli, mis tuleks saata eesservast koos p\u00e4isega Authorization. Nende andmete postitamise ajal peate need saatma JSON-vormingus. N\u00e4iteks VSCode-st, kasutades <a href=\"https:\/\/themewp.inform.click\/et\/rest-visual-studio-koodi-kliendilaiend\/\" title=\"Rest Client Extensioni,\">Rest Client Extensioni,<\/a> saadan POST-p\u00e4ringu, nagu on n\u00e4idatud alloleval ekraanipildil.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20211-6081cde961b7f.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20211-6081cde961b7f.png\" alt=\"Kuidas lisada kohandatud l\u00f5pp-punkte WordPressi API-sse\" ><\/a><\/p>\n<p>Siin oleme eelmises etapis loodud loa edastanud p\u00e4ise autoriseerimise v\u00e4\u00e4rtusena.<\/p>\n<p>Lisage faili allpool toodud <code>login()<\/code>meetodi kood <code>functions.php<\/code>.<\/p>\n<pre><code>function login( WP_REST_Request $request) {\n\u00a0\u00a0\u00a0\u00a0$arr_request = json_decode( $request-&gt;get_body() );\n\u00a0\n\u00a0\u00a0\u00a0\u00a0if (! empty( $arr_request-&gt;email) &amp;&amp;! empty( $arr_request-&gt;password)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ this returns the user ID and other info from the user name.\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$user = get_user_by( 'email', $arr_request-&gt;email );\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (! $user) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ if the user name doesn't exist.\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'status' =&gt; 'error',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'message' =&gt; 'Wrong email address.',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0];\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ check the user's login with their password.\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (! wp_check_password( $arr_request-&gt;password, $user-&gt;user_pass, $user-&gt;ID)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ if the password is incorrect for the specified user.\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'status' =&gt; 'error',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'message' =&gt; 'Wrong password.',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0];\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'status' =&gt; 'success',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'message' =&gt; 'User credentials are correct.',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0];\n\u00a0\u00a0\u00a0\u00a0} else {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'status' =&gt; 'error',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'message' =&gt; 'Email and password are required.',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0];\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p><strong>M\u00e4rkus.<\/strong> Kui kuvati t\u00f5rge, nagu \u201eURL-i ja taotlusmeetodile vastavat marsruuti ei leitud&#8221;, peate oma p\u00fcsilinki v\u00e4rskendama.<\/p>\n<p>Oleku v\u00f5tme edukuse v\u00e4\u00e4rtuse saamisel saate kasutaja logida eesseadme rakendusse.<\/p>\n<h3>Koostage GET-p\u00e4ringu l\u00f5pp-punkt<\/h3>\n<p>Oleme n\u00e4inud, kuidas POST-p\u00e4ringute jaoks kohandatud l\u00f5pp-punkte luua. N\u00fc\u00fcd uurime GET-p\u00e4ringut WordPress REST API abil. Selle jaoks kirjutan API, mis kustutab kasutaja. Eesosast peaksite GET-parameetrina edastama kasutaja ID.<\/p>\n<pre><code>add_action(\n\u00a0\u00a0\u00a0\u00a0'rest_api_init',\n\u00a0\u00a0\u00a0\u00a0function() {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0register_rest_route(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'api',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'delete_user\/(?P&lt;id&gt;d+)',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0array(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'methods'\u00a0 =&gt; 'GET',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'callback' =&gt; 'delete_user',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0);\n\u00a0\u00a0\u00a0\u00a0}\n);<\/code><\/pre>\n<p>See kood genereerib API l\u00f5pp-punkti kujul YOUR_SITE_URL \/ wp-json \/ api \/ delete_user \/ id. Sellesse l\u00f5pp-punkti peaks ID asemel sisestama kasutaja tegeliku ID.<\/p>\n<p>Tagasihelistamismeetodil <code>delete_user<\/code>on j\u00e4rgmine kood.<\/p>\n<pre><code>function delete_user( $data) {\n\u00a0\u00a0\u00a0\u00a0\/\/ delete the user\n\u00a0\u00a0\u00a0\u00a0require_once(ABSPATH.'wp-admin\/includes\/user.php' );\n\u00a0\u00a0\u00a0\u00a0if (wp_delete_user($data['id'])) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'status' =&gt; 'success',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'message' =&gt; 'User deleted successfully.',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0];\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0return [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'status' =&gt; 'error',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'message' =&gt; 'It seems you passed the wrong user id.',\n\u00a0\u00a0\u00a0\u00a0];\n}<\/code><\/pre>\n<p>Loodan, et saate aru, kuidas WordPress REST API-s kohandatud l\u00f5pp-punkti luua. Palun jagage oma m\u00f5tteid ja ettepanekuid allpool olevas kommentaaride jaotises.<\/p>\n<h4>seotud artiklid<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/kiire-juhend-woocommerce-rest-api-kohta\/\" title=\"Kiirjuhend WooCommerce REST API kohta\">Kiirjuhend WooCommerce REST API kohta<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/kuidas-kuvada-seotud-tooteid-woocommerce-rest-api-abil\/\" title=\"Kuidas kuvada seotud tooteid WooCommerce REST API abil\">Kuidas kuvada seotud tooteid WooCommerce REST API abil<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/kone-tekstiks-kasutades-php-s-amazon-transcribe-i\/\" title=\"K\u00f5ne tekstiks, kasutades PHP-s Amazon Transcribe&#039;i\">K\u00f5ne tekstiks, kasutades PHP-s Amazon Transcribe&#8217;i<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kas soovite luua WordPress REST API-s kohandatud l\u00f5pp-punkti? Ehitades mobiilirakendust v\u00f5i veebisaiti JavaScripti framewroki abil<\/p>\n","protected":false},"author":1,"featured_media":21623,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[609],"tags":[842],"class_list":["post-26268","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized-5","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts\/26268","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/comments?post=26268"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts\/26268\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/media\/21623"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/media?parent=26268"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/categories?post=26268"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/tags?post=26268"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}