In partea anterioara a seriei, am analizat cum putem folosi API-ul WP REST pentru a prelua continut de pe server. Am invatat sa regasim continut pentru diferite resurse, inclusiv postari, meta-postare, tag-uri, categorii etc. Aceasta este o caracteristica puternica, deoarece acest continut poate fi utilizat oriunde in interiorul sau in afara WordPress.
De asemenea, am aflat despre solicitarea OPTIUNILOR pentru ca autodocumenteaza API-ul prin listarea tuturor rutelor, a punctelor lor finale si a argumentelor respective. Acest lucru diminueaza nevoia de a se baza pe o documentatie externa pentru API si permite descoperirea modificarilor destul de rapid in cazul in care API-ul a fost actualizat sau modificat.
Analizand aceste caracteristici, in tutorialul curent ne vom concentra acum atentia asupra celorlalte trei operatiuni ale CRUD, adica crearea, actualizarea si stergerea datelor utilizand API-ul WP REST.
In acest tutorial, vom:
- analizati ce resurse suporta creeaza, actualizeaza si sterge metodele
- invata sa creezi, sa actualizezi si sa stergi resurse
- analizati modalitatile de a trimite date de-a lungul cererii de creare a unei resurse
- analizati raspunsul serverului si diferite coduri de raspuns
Asadar, sa incepem prin a analiza ce resurse accepta metodele de creare, actualizare si stergere folosind API-ul WP REST.
Verificarea metodelor de creare, actualizare si stergere a metodelor din rute
Inainte de a ne deplasa direct in crearea si actualizarea datelor cu API-ul WP REST, trebuie sa analizam care sunt rutele care accepta metodele de creare si actualizare. Facem acest lucru verificand rutele si proprietatile metodelor in punctele lor finale. Acest lucru se poate realiza trimitand o cerere OPTIONARE separata pe rute individuale, dar o modalitate mai convenabila este sa trimiteti o solicitare GET catre ruta / index wp-json, asa cum am facut in partea anterioara a seriei.
Trimiterea unei solicitari GET catre ruta / wp-json returneaza un obiect care contine toate rutele si punctele lor finale din proprietatea rutelor.
In aceste rute individuale putem verifica daca o resursa specifica accepta metode POST, PUT si DELETE. Sa incepem prin analizarea resursei Posts .
Mesaje resursa expune date cu urmatoarele doua rute:
/ wp / v2 / posts / wp / v2 / posts / (? p <id> [\ d] +)
Primul traseu indica colectia obiectului post, iar proprietatea metodei sale este urmatoarea:
“metode”: [“GET”, “POST”],
Aceasta proprietate metode arata ca ruta / posts accepta metode GET si POST pentru preluarea si crearea de date, respectiv.
Pentru ruta / posts / (? P <id> [\ d] +), care indica o singura resursa Posts , proprietatea metodelor este urmatoarea:
“metode”: [“GET”, “POST”, “PUT”, “PATCH”, “DELETE”],
Dupa cum se poate observa in codul de mai sus, ruta / posts / (? P <id> [\ d] +) accepta metodele GET, POST, PUT, PATCH si DELETE.
Examinand ambele rute de mai sus, putem concluziona ca ruta / posturi accepta regasirea si crearea resurselor. Iar ruta / posts / (? P <id> [\ d] +) accepta preluarea resurselor, precum si actualizarea si stergerea. Desi accepta metoda POST, aceasta ruta nu accepta crearea de resurse asa cum vom vedea intr-un exemplu de mai jos.
Prin urmare, rutele care indica o singura resursa nu pot fi utilizate pentru a crea continut, desi accepta metoda POST. Acest lucru se datoreaza faptului ca, pentru aceste rute, metodele POST, PUT si PATCH sunt utilizate pentru actualizarea continutului in API-ul WP REST.
Pentru a incheia aceasta sectiune, sa rezumam conceptele pe care le-am invatat aici:
- Putem verifica ce rute accepta metodele GET, POST si DELETE, trimitand o cerere OPTIONS.
- Rutele care indica o singura entitate nu pot fi utilizate pentru a crea continut. Sunt utilizate pentru actualizarea continutului, desi accepta metoda POST.
Dupa analizarea diferitelor rute, suntem acum pregatiti sa cream continut folosind API-ul WP REST si vom incepe prin a explora resursa Posts .
Crearea si actualizarea unei postari
Sa cream o postare trimitand o solicitare de test de la Postman sau de la orice alt client HTTP. Pentru a face acest lucru, opriti clientul HTTP si trimiteti o solicitare POST pe ruta / posts. Dar inainte de asta, amintiti-va ca crearea, stergerea si actualizarea resurselor necesita autentificare ca utilizator cu drepturi edit_posts. Astfel vom folosi metoda de autentificare de baza pe care am invatat-o in partea a doua a acestei serii.
Initial, trimitem un corp de solicitare gol de-a lungul cererii pentru scopuri de testare:
$ POST / wp / v2 / postari
Serverul va returna o eroare 400 – Cerere necorespunzatoare, deoarece argumentele necesare lipseau in corpul de solicitare. Urmatorul raspuns va fi returnat de server:
Raspunsul afirma ca este necesar fie continut, titlu sau extras pentru crearea unui obiect post. Aceste argumente pot fi trimise de-a lungul cererii in organismul de solicitare in oricare dintre urmatoarele trei moduri:
- Ca obiect JSON
- Prin utilizarea formularelor
- Ca parametri URL
Este doar o chestiune de alegere sa folosesti oricare dintre aceste metode si le vom analiza mai atent mai tarziu in acest tutorial. Dar sa folosim acum prima metoda pentru crearea unei postari.
Pentru a trimite argumente ca obiect JSON in Postman, treceti la fila Body si selectati butonul radio brut. Apoi, din meniul derulant din dreapta, selectati optiunea JSON (aplicatie / json). In zona de text de mai jos, puteti adauga apoi corpul JSON.
In prezent, acest organism JSON detine o singura proprietate pentru titlul postarii.
Trimiteti solicitarea facand clic pe butonul Trimite. Daca totul merge bine, serverul va returna o stare 201 – Creata cu obiectul postat recent creat ca raspuns.
Starea implicita a acestui post nou creat este proiectul. Putem actualiza starea, precum si unele alte proprietati, trimitand o alta solicitare POST, PUT sau PATCH. ID-ul postarii returnate in cazul meu este 232, asa ca voi trimite o solicitare la urmatorul punct:
$ POST / wp / v2 / postari / 232
Organismul de solicitare pentru a actualiza starea si proprietatea continutului arata astfel:
{“status”: “publica”, “content”: “Acesta este continutul postarii”}
Dupa trimiterea cererii, serverul va returna o stare 200 – OK, ceea ce inseamna ca postarea a fost actualizata cu succes.
In exemplul de mai sus, am intalnit urmatoarele trei argumente pentru a crea o postare:
- titlu
- stare
- continut
Lista completa de argumente acceptate pentru crearea unei postari poate fi preluata printr-o simpla solicitare de OPTIUNI, dupa cum urmeaza:
$ OPTIUNI / wp / v2 / postari
Putem apoi verifica proprietatea args din tabloul metodei POST.
Acum ca am aflat cum putem crea si actualiza o postare, sa aruncam o privire la alte resurse cu care putem lucra.
Crearea si actualizarea Post Meta
Actualizare: Pentru a lucra cu meta post si pagina in API-ul WP REST este nevoie de un plugin de companie disponibil pe GitHub de catre echipa API WP REST.
Postul meta poate fi creat prin trimiterea unei solicitari POST pe urmatorul traseu:
/ wp / v2 / mesaje / (? P <PARENT_ID> [\ d] +) / meta
Unde (? P <parent_id> [\ d] +) este ID-ul postarii parinte. Voi folosi ID-ul postarii pe care am creat-o in sectiunea anterioara, care este 232.
Intr-o maniera similara cu modul in care trimitem un corp de solicitare pentru a crea un obiect post, un obiect JSON cuprinzand doua proprietati poate fi trimis pentru a crea o meta-post. Aceste doua proprietati sunt cheie si valoare.
{“key”: “nume”, “valoare”: “Bilal”}
Valorile proprietatii cheii si valorii sunt numele si respectiv Bilal.
Trimiteti solicitarea si serverul va returna un cod de stare 201 – creat, care arata ca meta-ul post a fost creat cu succes. Obiectul meta nou creat post va fi, de asemenea, returnat in raspuns:
Retineti ca, la momentul scrierii acestui tutorial, API-ul WP REST nu accepta valori intregi pentru crearea meta meta. Daca incercam sa trimitem o valoare intreaga in obiectul JSON pentru crearea meta meta, un cod de stare 400 – Cerere gresita va fi returnat de server.
{“key”: “valoare”, “valoare”: 12345}
Retineti ghilimele care lipsesc in jurul valorii 12345. Raspunsul returnat va fi urmatorul:
Deci orice trimiteti de-a lungul cererii de creare a meta meta trebuie sa fie in format sir.
Metode de creare si actualizare a datelor
Pana acum, in acest tutorial, am folosit formatul JSON in corpul de solicitare pentru a crea si actualiza resurse. Sa aruncam o privire la toate optiunile pe care le ofera API-ul WP REST pentru crearea si actualizarea datelor.
Trimiterea datelor ca parametri URL
Cel mai simplu mod de a trimite date de-a lungul cererii este de a le trimite ca parametri URL. Luati in considerare urmatoarea solicitare POST pentru crearea unei postari:
$ POST / wp / v2 / posts? Title = the + title & content = this + is + the + content
Cererea de mai sus trimite doi parametri catre server pentru titlu si continutul postarii.
In mod similar, pentru crearea meta meta pentru o postare avand un ID de 232, folosim urmatoarea solicitare POST:
$ POST / wp / v2 / posts / 232 / meta? Key = nume & valoare = Bilal
Cererea de mai sus va crea urmatorul meta-obiect:
Aceasta metoda este cea mai potrivita atunci cand parametrii sunt siruri scurte, ca in exemplul de mai sus. Dar, pe masura ce numarul de parametri si lungimea valorilor lor creste, devine dificil sa le gestionati ca parametri URL.
Trimiterea datelor ca obiect JSON
Folosind aceasta metoda, luam argumente ca pereche cheie / valoare intr-un obiect JSON pentru a le trece de-a lungul cererii. Pana acum, am folosit Postman pentru a trimite solicitari catre server. Vom arunca o privire asupra modului in care putem implementa aceasta metoda folosind HTML si jQuery.
Luati in considerare urmatorul formular simplu care consta din trei campuri pentru titlu, stare si continut:
<form name = “post-form” id = “post-form”> <label for = “title”> Titlu </label> <input type = “text” name = “title” id = “title”> <label for = “status”> Status </label> <select name = “status” id = “status”> <option value = “publica”> Publicare </option> <option value = “draft”> Draft </option> </select> <label for = “content”> Continut </label> <textarea name = “content” id = “content”> </textarea> <input type = “submit” name = “submit” value = “Trimite “> </form>
Cand formularul de mai sus este trimis, se executa urmatorul cod JavaScript (jQuery):
var postForm = $ (‘# post-formular’); var jsonData = function (forma) {var arrData = form.serializeArray (), objData = {}; $ .each (arrData, functie (index, elem) {objData [elem.name] = elem.value;}); returnare JSON.stringify (objData); }; postForm.on (‘trimite’, functie (e) {e.preventDefault (); $ .ajax ({url: ‘https: // your-dev-server / wp-json / wp / v2 / posts’, metoda: ‘POST’, date: jsonData (postForm), crossDomain: true, contentType: ‘application / json’, beforeSend: function (xhr) {xhr.setRequestHeader (‘Autorizare’, ‘Username de baza: parola’);}, succes: function (data) {console.log (date);}, eroare: function (eroare) {console.log (eroare);}});});
La trimiterea formularului de mai sus, trimitem o solicitare AJAX catre ruta / wp / v2 / posts. Metoda jsonData () accepta o instanta jQuery a formularului HTML si transforma datele sale in format JSON. Aceste date JSON sunt apoi utilizate in proprietatea datelor din metoda $ .ajax (). In plus, setam tipul de continut pe aplicatie / json folosind proprietatea contentType.
Inainte de a trimite solicitarea, setam antetul sa includa antetul Autorizatiei pentru utilizarea metodei de autentificare de baza. Am invatat deja sa stabilim si sa folosim metoda de autentificare de baza in a doua parte a acestei serii.
In final, solicitarea este trimisa la ruta / wp / v2 / posts si este creata o noua postare. Acest obiect postat recent creat este returnat de server ca raspuns si il conectam pur si simplu la consola in cadrul metodei de succes ().
Exemplul de mai sus demonstreaza utilizarea formatului JSON pentru a trimite date de-a lungul cererii. Sursa acestui obiect JSON poate fi orice, in afara de o forma HTML, in functie de arhitectura aplicatiei tale.
Va rugam sa retineti ca pentru ca codul de mai sus sa functioneze corect, poate fi necesar sa setati campul de antet Acces-Control-Allow-Headers pentru a include valorile de tip Autorizare si de continut. Acest lucru se poate face adaugand urmatorul cod in fisierul .htaccess al WordPress:
Set antet “Acces-Control-Allow-Headers” Tip de continut, autorizare “
Sa ne uitam acum la trimiterea de date prin formulare HTML.
Trimiterea datelor cu ajutorul formularelor
Ultima modalitate de a trimite date de-a lungul solicitarii este folosirea formularelor HTML. Aceste forme trebuie sa contina campuri cu atributul nume. Atributul nume serveste ca nume de argument precum titlul, starea, continutul etc. Valorile acestor campuri servesc ca valoare a acestor argumente.
Putem folosi acelasi formular HTML creat in exemplul precedent, apoi sa folosim urmatorul cod pentru a crea o noua postare:
var postForm = $ (‘# post-formular’); postForm.on (‘trimite’, functie (e) {e.preventDefault (); $ .ajax ({url: ‘http: // your-dev-server / wp-json / wp / v2 / posts’, metoda: ‘POST’, date: postForm.serialize (), crossDomain: true, beforeSend: function (xhr) {xhr.setRequestHeader (‘Autorizare’, ‘Username basic: password’);}, success: function (data) {console. jurnal (date);}});});
Codul de mai sus este acelasi cu exemplul anterior, cu exceptia faptului ca am eliminat metoda jsonData () si acum trimitem datele formularului in format sir folosind metoda serialize () a jQuery. Codul jQuery de mai sus foloseste tipul de continut implicit aplicatie / x-www-form-urlencoded care trimite datele sub forma unui sir gigant, cu argumente separate de semnul & si valorile lor fiind alocate folosind semnul =. Aceasta seamana oarecum cu trimiterea datelor ca parametri URL, cu exceptia faptului ca acestea nu expun date. Acesta este un mod eficient de a trimite date daca datele contin doar caractere alfanumerice.
Pentru a trimite date binare (non-alfanumerice), utilizam tipul de continut de date multiple / forme-date. Aceasta metoda poate fi folosita daca trebuie sa incarcam imagini sau alte fisiere folosind API-ul WP REST.
Pentru a trimite date de formular in Postman, puteti trece la fila Body si apoi folositi optiunea form-data sau x-www-form-urlenced.
porno anal casting http://www.winglungbank.biz/__media__/js/netsoltrademark.php?d=adult66.net/
filme porno cu mature amatoare http://oxfordscholarship.info/__media__/js/netsoltrademark.php?d=adult66.net/
filme porno cu fete de liceu http://www.eweavermft.com/__media__/js/netsoltrademark.php?d=adult66.net/
porno ava adams http://ivystyle.net/__media__/js/netsoltrademark.php?d=adult66.net/filme-porno/amatori
lol porno http://www.le-juste-prix.com/__media__/js/netsoltrademark.php?d=adult66.net/filme-porno/anal
studente porno http://gabrielle-gray.com/__media__/js/netsoltrademark.php?d=adult66.net/filme-porno/asiatice
porno constanta http://wildoutfitters.com/__media__/js/netsoltrademark.php?d=adult66.net/filme-porno/beeg
porno cu urate http://www.kohlsregistry.biz/__media__/js/netsoltrademark.php?d=adult66.net/filme-porno/blonde
film porno cu lesbiene http://shalwarkameez.com/__media__/js/netsoltrademark.php?d=adult66.net/filme-porno/brazzers
actrita porno http://ihatemichaelscrafts.com/__media__/js/netsoltrademark.php?d=adult66.net/filme-porno/brunete
porno somn http://www.callawayscloset.com/__media__/js/netsoltrademark.php?d=adult66.net/filme-porno/chaturbate
filme porno +18 http://www.nnmfjj.com/Go.asp?url=https://adult66.net/doua-lesbiene-super-bune-prinse-in-clasa-in-timp-ce-fac-sex
filme porno cu alina plugaru http://www.obabygear.com/__media__/js/netsoltrademark.php?d=adult66.net/sex-in-parc-cu-un-cuplu-de-amatori-filmati-pe-ascuns
porno bucatarie http://aroma.cardinalseanblog.org/__media__/js/netsoltrademark.php?d=adult66.net/virgina-fututa-in-propria-casa-de-prietenul-tatalui-venit-in-vizita
adolescente porno http://www.politicallyincorrectbooks.com/__media__/js/netsoltrademark.php?d=adult66.net/filmulet-porno-cu-un-cuplu-de-negri-care-o-ard-hardcore
porno japonez http://www.tablegrand.com/__media__/js/netsoltrademark.php?d=adult66.net/super-orgasm-cu-o-gagica-excitata-filme-porno-orgasm
porno la cinema http://curbyourenthusiasmmusic.de/__media__/js/netsoltrademark.php?d=adult66.net/pitipoanca-fututa-si-filmata-pe-ascuns-in-timp-ce-suge-pula
free movies porno http://www.69porntube.com/te3/out.php?s=100&u=https://adult66.net/femeie-matura-e-fututa-grav-de-un-pustan-de-16-ani
reality porno http://pestcontrollerreport.net/__media__/js/netsoltrademark.php?d=adult66.net/adolescenta-rapita-si-violata-de-mai-multi-barbati-odata
porno cu pule mari http://www.highpointstands.com/__media__/js/netsoltrademark.php?d=adult66.net/sex-pasional-cu-3-tipe-bune-in-camera-de-camin
Argumentele pot fi apoi definite in perechi cheie / valoare pentru a fi trimise de-a lungul cererii.
Informatii detaliate despre diferite tipuri de formulare pot fi gasite in specificatiile W3C.
Incarcarea media folosind tipul de continut de mai multe parti / forme de date
Acum, ca ne-am uitat la tipul de formular x-www-form-urlencoded, care trimite date sub forma unui sir, sa incepem sa exploram un tip de codificare de formular mai avansat, adica multipart / form-data.
Tipul continutului multipart / forma-date este utilizat atunci cand aveti de-a face cu date binare si, prin urmare, poate fi utilizat pentru a incarca imagini sau alte tipuri de fisiere pe server.
In exemplul urmator, folosim un formular HTML simplu format dintr-o intrare [type = “file”] si un pic de jQuery pentru a incarca imagini pe server folosind ruta / wp / v2 / media.
Luati in considerare urmatorul formular HTML:
<form name = “image-form” id = “image-form”> <label for = “image-input”> File </label> <input name = “image-input” id = “image-input” type = “file”> <input type = “submit” value = “Incarcare”> </form>
Urmatorul JavaScript va fi executat atunci cand este trimis formularul de mai sus:
var imageForm = $ (‘# forma-imagine’), fileInput = $ (‘# fisier’), formData = new FormData (); imageForm.on (‘trimite’, functie (e) {e.preventDefault (); formData.append (‘fisier’, fileInput [0]. fisiere [0]); $ .ajax ({url: ‘http: // your-dev-server / wp-json / wp / v2 / media ‘, metoda:’ POST ‘, date: formData, crossDomain: true, contentType: false, processData: false, beforeSend: function (xhr) {xhr.setRequestHeader ( ‘Autorizare’, ‘Nume utilizator de baza: parola’);}, succes: functie (date) {console.log (date);}, eroare: functie (eroare) {console.log (eroare);}});}) ;
Aici primim mai intai o instanta jQuery a formularului si a campului de intrare. Apoi initializam un nou obiect FormData. Interfata FormData ofera o modalitate de a construi un set de campuri de formular cu perechi cheie / valoare si foloseste acelasi format ca tipul de codare a formularului de tip multipart / forma-date.
Atunci cand formularul este trimis, prevenim trimiterea acestuia apeland metoda .preventDefault () pe obiectul eveniment. Apoi adaugam un camp nou la instanta formData folosind metoda .append (). Metoda .append () accepta doua argumente pentru numele si valoarea campului. API-ul WP REST aplica atributul nume al campului de introducere a fisierului care urmeaza sa fie fisier. De aceea, am stabilit ca primul argument – numele – sa fie fisier, iar pentru al doilea argument trecem un obiect blob de fisier, facand referire la elementul de intrare.
In mod implicit, datele trecute in proprietatea datelor din metoda jQuery.ajax () sunt procesate intr-un sir de interogare. Din moment ce incarcam fisiere cu imagini aici, nu dorim sa se intample acest lucru si, in acest scop, setam proprietatea processData pe falsa. De asemenea, am stabilit proprietatea contentType pe false pentru a impiedica trimiterea aplicatiei / x-www-form-urlencoded ca tip de continut implicit catre server.
Si, in sfarsit, am setat antetul Autorizatiei pentru a ne autentifica ca utilizator cu privilegii edit_posts.
Asigurati-va ca rulati scriptul de mai sus de pe un server. Daca totul merge bine si fisierul este incarcat, serverul va returna obiectul media nou creat.
Aceasta imagine poate fi apoi setata ca imagine caracterizata pentru o postare.
Dupa ce am analizat indeaproape modalitatile de creare si actualizare a resurselor folosind API-ul WP REST, sa vedem cum le putem sterge.
Stergerea datelor cu API-ul WP REST
Stergerea datelor cu API-ul WP REST este la fel de simpla ca trimiterea unei solicitari DELETE catre o anumita resursa.
Daca trebuie sa stergem o postare cu un ID de 10, trimitem urmatoarea solicitare Stergeti:
$ DELETE / wp / v2 / postari / 10
Aceasta va muta postarea in cosul de gunoi, dar nu o va sterge definitiv. Pentru a sterge definitiv o postare, folosim argumentul forta:
$ DELETE / wp / v2 / posts / 10? Force = true
Retineti ca argumentul forta este necesar atunci cand se sterge o resursa care nu accepta curgerea. Exemple de astfel de resurse sunt post meta si media.
Acestea fiind spuse, incheiem acum partea actuala a seriei.
Ce urmeaza?
In acest tutorial indelungat, am analizat crearea, actualizarea si stergerea diferitelor tipuri de resurse folosind API-ul WP REST. Am aflat despre diferite modalitati de a trimite date de-a lungul solicitarii, inclusiv trimiterea de date ca parametri URL, in format JSON si folosind formulare. La sfarsitul tutorialului, am aflat despre stergerea resurselor, trimitand o solicitare DELETE.
In urmatoarea si ultima pagina a seriei, vom afla despre structura interna a API-ului WP REST si clasele acesteia. Vom invata, de asemenea, sa extindem API-ul pentru a modifica raspunsurile serverului. Ne vedem in urmatoarea parte a seriei – ramai la curent …








