API dodatak. API dodatak Povezivanje api dodatka treće strane za minecraft

Dodaci su ključni dio ekosustava webpacka i pružaju zajednici moćan način za uključivanje u proces kompilacije webpacka. Dodatak se može spojiti na ključne događaje koji se pokreću tijekom svake kompilacije. Na svakom koraku, dodatak će imati potpuni pristup kompajleru i, kada je primjenjivo, trenutnoj kompilaciji.

Za uvod na visokoj razini u pisanje dodataka, počnite s pisanjem dodatka.

Započnimo pregledom uslužnog programa koji se može dodirivati, koji predstavlja okosnicu sučelja dodataka za webpack.

Kucnuti

Ova mala biblioteka je temeljni uslužni program u webpacku, ali se može koristiti i drugdje za pružanje sličnog sučelja dodatka. Mnogi objekti u webpacku proširuju klasu Tapable. Klasa izlaže metode tap, tapAsync i tapPromise koje dodaci mogu koristiti za ubacivanje prilagođenih koraka izgradnje koji će se pokretati tijekom kompilacije.

Moguće je prilagoditi ispisani izlaz prosljeđivanjem različitih argumenata funkciji reportProgress dodatka ProgressPlugin.

Da bi prijavio napredak, dodatak mora dodirnuti kuku pomoću opcije context: true:

Sastavljač. udice. emitirati. tapAsync (( naziv: "MyPlugin" , context: true ) , (kontekst, kompajler, povratni poziv) => ( const reportProgress = context && context. reportProgress; if (reportProgress) reportProgress (0.95, "Početak rada" ) ; setTimeout (( ) => ( if (izvješćeNapredak) izvješćeNapredak (0.95, "Završen posao" ) ; povratni poziv () ; ) , 1000 ) ; ) ) ;

Funkcija reportProgress može se pozvati sa ovim argumentima:

izvješćeNapredak(postotak, ... argumenti);
  • postotak: Ovaj argument nije korišten; umjesto toga, ProgressPlugin će izračunati postotak na temelju trenutne kuke.
  • ...args: Bilo koji broj znakovnih nizova koji će biti proslijeđeni rukovatelju ProgressPlugin da bi se prijavili korisniku.

Imajte na umu da samo podskup kompajlera i spojnica kompilacije podržavaju funkciju reportProgress. Pogledajte ProgressPlugin za potpuni popis.

Sječa drva

Logging API dostupan je od izdanja webpacka 4.37. Kada je bilježenje omogućeno u konfiguraciji statistike i/ili kada je omogućeno bilježenje infrastrukture, dodaci mogu bilježiti poruke koje će se ispisati u odgovarajućem formatu zapisivača (statistika, infrastruktura).

  • Dodaci bi radije trebali koristiti compilation.getLogger("PluginName") za zapisivanje. Ova vrsta bilježenja pohranjuje se u Statistici i formatira u skladu s tim. Korisnik ga može filtrirati i izvesti.
  • Dodaci mogu koristiti compiler.getInfrastructureLogger("PluginName") za zapisivanje. Korištenje evidencije infrastrukture nije pohranjeno u Statistici i stoga nije formatirano. Obično se izravno prijavljuje na konzolu/nadzornu ploču/GUI. Korisnik ga može filtrirati.
  • Dodaci mogu koristiti posebnu zamjensku logiku za otkrivanje podrške za bilježenje compilation.getLogger ? compilation.getLogger("PluginName") : konzola za pružanje zamjene za slučajeve kada se koristi starija verzija webpacka koja ne podržava metodu getLogger na objektu kompilacije.

Sljedeći koraci

Pogledajte odjeljak s poveznicama prevoditelja za detaljan popis svih dostupnih spojnica prevoditelja i parametara koje one čine dostupnima.

Dodatak je dinamički učitavana biblioteka (DLL). Nakon instaliranja programa, svi dodaci uključeni u distribuciju smješteni su u direktorij c:\Program Files (x86)\Common Files\Soft Gold\Inventory 14\Plugins\... Ekstenzija *.abl je potrebna za automatsko preuzimanje dodatak iz navedenog direktorija kada se aplikacija pokrene. Dodatak se također može učitati s bilo kojeg drugog mjesta na disku određivanjem putanje pretraživanja u postavkama.

Inicijalizacija API-ja dodatka

(Delphi VCL proširenja)

(Plugin sučelje za ABViewer/Inventory)

(Copyright (c) 2002-2010 SoftGold softverska tvrtka)

{************************************************************}

jedinica sgPluginItem;

sučelje

implementacija

XMLDocRef: IXMLDocument = nula;

ClientRef: IXMLNode = nula;

P: Pokazivač = nula;

PluginsHostWnd: HWND = 0;

PluginsHostWndName: niz = "";

XMLAtomString: niz = "";

procedura InitializeDoc;

početi

// dobivanje jedinstvenog imena klase prozora s parametrima

PluginsHostWndName:= Format("TsgPluginsHost:%.8X:%.8X", );

// pronalaženje samog prozora

PluginsHostWnd:= FindWindow(PChar(PluginsHostWndName), nula);

Ako PluginsHostWnd<>0 onda

Početi

// dobiti niz atoma koji treba dobiti xml parametar dokument

XMLAtomString:= Format("XMLOfs%.8X%.8X",

XMLDocRef:= IXMLDocument(GetProp(PluginsHostWnd, PChar(XMLAtomString)));

If Assigned(XMLDocRef) then

Početi

// dodavanje elementa na popis

ClientRef:= XMLDocRef.DocumentElement.ChildNodes.ChildNodes.AddChild(sClient);

// inicijaliziranje adrese funkcije Invoke

ClientRef.ChildValues["Invoke"] := IntToId(Integer(@Invoke)); // heksadecimalni $XXXXXXXX

Kraj;

Kraj;

kraj;

inicijalizacija

KoInicijaliziraj(P);

InitializeDoc;

Postavljanje i pokretanje demo verzije dodatka

Demo verzija dodatka konfigurira se automatski prilikom instalacije programa i povezuje se odmah nakon pokretanja Inventora. Paket uključuje izvorni kod komponente (naziv projekta sgPlugin.dpk) i demo verziju dodatka (naziv projekta plug1.dpr).

Postupak pokretanja dodatka iz moda za otklanjanje pogrešaka:

▪ Otvoreno C:\Users\USER_NAME\Documents\Inventory 14\Plugins\Source\Delphi\Demos\Plug1\plug1.dpr

▪ Postavite opcije projekta:

Putanja pretraživanja : "..\..\Components\PlugItem";

Izlazni direktorij, na primjer: “c:\Program Files\Common Files\Soft Gold\Inventory 14\Plugins”;

Host aplikacija, ponovno uključena instalirana aplikacija, na primjer: “c:\Program Files\Soft Gold\Inventory 14\Inventory 14.exe”.

▪ Pokretanje za izvršenje.

Da biste koristili komponentu u vrijeme dizajna, morate je otvoriti, ponovno izgraditi i instalirati C:\Users\USER_NAME\Documents\Inventory 14\Plugins\Source\Delphi\Components\PlugItem\sgPlugin.dpk. Nakon instaliranja komponente, u paleti Delphi komponente, komponenta TsgPluginItem će se pojaviti na kartici Soft Gold, koja se može koristiti u vrijeme dizajna, tj. mjesto na obrascu.

Udice osigurava WordPress kako bi vašem dodatku omogućili da se "prikači" na ostatak WordPressa; to jest, za pozivanje funkcija u vašem dodatku u određeno vrijeme i na taj način pokrenuti vaš dodatak. Postoje dvije vrste udica:

  1. (Kodeks)
  2. (Kodeks)

Ponekad možete postići isti cilj radnjom ili filtrom. Na primjer, ako želite da vaš dodatak promijeni tekst objave, možete dodati akcijsku funkciju u publish_post (tako da se objava mijenja dok se sprema u bazu podataka) ili funkciju filtra u the_content (tako da je objava izmijenjeno kako je prikazano na zaslonu preglednika).

Za detaljan popis svih akcijskih i filtarskih kuka u WP-u pogledajte bazu podataka WordPress kuka Adama Browna.

Referenca funkcije

Funkcije filtra
Akcije Funkcije
Funkcije aktivacije/deaktivacije/deinstalacije

Radnje

Radnje pokreću određeni događaji koji se odvijaju u WordPressu, kao što je objavljivanje posta, promjena tema ili prikazivanje . Akcija je prilagođena PHP funkcija definirana u vašem dodatku (ili temi) i zakačen, tj. postavljen da odgovori na neke od ovih događaja. Radnje obično čine jedno ili više od sljedećeg:

  • Izmjena podataka baze podataka.
  • Pošaljite e-mail poruku.
  • Izmijenite generirani administrativni zaslon ili prednju stranicu poslanu korisničkom pregledniku.

Osnovni koraci kako bi se to dogodilo (detaljnije opisani u nastavku) su:

  1. Napravite PHP funkciju koja bi se trebala izvršiti kada se dogodi određeni WordPress događaj u vašoj datoteci dodatka.
  2. Povežite ovu funkciju s događajem pomoću funkcije.
  3. Stavite svoju PHP funkciju u datoteku dodatka i aktivirajte je.

Napravite akcijsku funkciju

Prvi korak u stvaranju radnje u vašem dodatku je stvaranje PHP funkcije s radnjom funkcionalnosti vašeg dodatka i stavljanje u datoteku dodatka (vaša datoteka dodatka mora ići u wp-sadržaj/dodaci imenik). Na primjer, ako želite da vaši prijatelji dobiju poruku e-pošte kad god kreirate novi post, možete definirati sljedeću funkciju:

Funkcija email_friends($post_ID) ( $friends = " [e-mail zaštićen],[e-mail zaštićen]"; mail($friends, "sallyn blog ažuriran", "Upravo sam stavio nešto na svoj blog: http://blog.example.com"); vrati $post_ID; )

Za većinu radnji vaša bi funkcija trebala prihvatiti jedan parametar (obično ID posta ili komentara, ovisno o radnji). Neke radnje zahtijevaju više od jednog parametra -- provjerite dokumentaciju za radnju (ako je dostupna) ili izvorni kod WordPressa za više informacija. Osim jednog parametra, također možete pristupiti i pozvati druge WordPress funkcije (ili funkcije u vašoj datoteci dodatka).

Svaki tekstualni izlaz funkcije (npr. s ispisom) pojavit će se u izvoru stranice na mjestu gdje je radnja pozvana.

BILJEŠKA: Imajte na umu da drugi dodaci ili jezgra WordPressa možda već koriste naziv funkcije koji ste zamislili. Pogledajte sljedeći odjeljak za više informacija.

Izbjegavanje sudara naziva funkcija

Moguće je da je netko stvorio dodatak s funkcijom koja se zove isto kao ona u vašem dodatku.

To je problem jer PHP ne dopušta više funkcija s istim imenom. Ako dva dodatka pružaju funkciju s istim nazivom ili ako dodatak pruža funkciju s istim nazivom kao i WordPress funkcija, blog bi mogao prestati funkcionirati. Postoje dva načina za izbjegavanje ovog problema.

Prvo rješenje je svakoj funkciji u vašem dodatku dodati jedinstveni skup znakova. Ako se zovete John Q. Public, svoje funkcije možete deklarirati kao funkciju jqp_output() (...) . Vjerojatnost da netko s istim inicijalima učini istu stvar sa svojim dodatkom je moguća, ali mala.

Drugo - i moguće lakše - rješenje je uključiti svoje funkcije dodatka u klasu i statički pozvati metode klase. Ovo zvuči kompliciranije nego što jest.

Razmotrite ovu klasu koja se proširuje na gore navedene primjere:

Pošiljatelj e-pošte razreda ( statička funkcija send($post_ID) ( $friends = " [e-mail zaštićen],[e-mail zaštićen]"; mail($friends,"sally's blog updated","Upravo sam stavio nešto na svoj blog: http://blog.example.com"); vrati $post_ID; ) ) add_action("publish_post", array("emailer", "send"));

Ovaj razred zove pošiljatelj e-pošte ima metodu poslati koji implementira funkcionalnost dodatka.

Funkcija add_action() izvan klase dodaje radnju WordPressu koja mu govori da pozove poslati metoda kada se objava objavi. Niz koji se koristi u drugom parametru govori sustavu dodatka da pozove statičku metodu klase "emailer" pod nazivom "send".

Funkcija poslati zaštićen je od globalnog imenskog prostora deklaracijom klase. Nije moguće izravno pozvati send(), kao ni bilo koju drugu imenovanu funkciju poslati neće se sudariti s ovim. Ako ste htjeli pozvati send(), trebali biste upotrijebiti operator rezolucije opsega, poput ovog: emailer::send()

Gornji primjer je za statičke metode. Ako imate instancu klase, onda to neće raditi. Pozvati metodu instance trebaš da proslijedi instancu kao varijablu. Razmotrite gornji primjer izmijenjen kako biste ovo uzeli u obzir:

Pošiljatelj e-pošte razreda ( funkcija send($post_ID) ( $friends = " [e-mail zaštićen],[e-mail zaštićen]"; mail($friends,"sally's blog updated","Upravo sam stavio nešto na svoj blog: http://blog.example.com"); vrati $post_ID; ) ) $myEmailClass = novi emailer(); add_action("publish_post", array($myEmailClass, "send"));

Nastava je kompliciran predmet. Pročitajte više o njima u PHP dokumentaciji o klasama.

Priključite se na WordPress

Nakon što definirate svoju funkciju, sljedeći korak je "zakačiti" ili registrirati je na WordPress. Da biste to učinili, pozovite globalni prostor za izvođenje vaše datoteke dodatka:

Add_action("hook_name", "your_function_name", , );

Hook_name Naziv radnje kuke koju pruža WordPress, a koja govori s kojim događajem vaša funkcija treba biti povezana. your_function_name Naziv funkcije za koju želite da se izvrši nakon događaja navedenog u hook_name. To može biti standardna php funkcija, funkcija prisutna u jezgri WordPressa ili funkcija koju ste definirali u datoteci dodatka (kao što je gore definirano "email_friends"). prioritet Opcijski cjelobrojni argument koji se koristi za određivanje redoslijeda u kojem se izvršavaju funkcije povezane s određenom akcijom (zadano: 10). Niže odgovaraju brojevima s ranijim izvršenjem, a funkcije s istim prioritetom izvršavaju se redoslijedom dodanim radnji. accepted_args Opcijski cjelobrojni argument koji definira koliko argumenata vaša funkcija može prihvatiti (zadano 1), korisno jer neke kuke mogu proslijediti više od jednog argumenta vašoj funkciji. Ovaj je parametar nov u izdanju 1.5.1.

U gornjem primjeru, stavili bismo sljedeći redak u datoteku dodatka:

Add_action("publish_post", "email_friends");

Instalirajte i aktivirajte

Posljednji korak u pokretanju vaše kuke za filtriranje je instaliranje datoteke i aktiviranje dodatka. PHP funkcija koju ste napisali i poziv moraju zajedno ići u PHP datoteku, a PHP datoteka mora biti instalirana u wp-sadržaj/dodaci imenik. Nakon što se instalira, morat ćete posjetiti administratorski odjeljak WordPressa i aktivirati svoj dodatak; pogledajte za više detalja.

Trenutačne kuke za filtre

Aktivacija/Deaktivacija/Deinstalacija

Ako vaš dodatak ima zadatke koje treba izvršiti samo u vrijeme aktivacije ili deaktivacije, može koristiti i Action Reference - popis WordPress-ovih kukica za radnje

Vanjski izvori

  • Baza podataka WordPress udica Adama Browna, baza podataka svih udica na WordPressu, koja pokazuje iz koje verzije potječu i povezuje s mjestima izvornog koda koja ih koriste. Ovo je najpotpunije.
  • Otto na WordPressu:

Od Yandex.
To je web usluga, pa to ne morate dodavati.

Vlasnici poslužitelja trebaju poseban ključ za omogućavanje ovog dodatka.
Prijavite se na web mjesto Yandex i nabavite ovaj ključ, a zatim ga stavite u konfiguraciju API-ja.
Imajte na umu da besplatni ključ podržava "samo" 10.000.000 znakova svaki mjesec, ali možete kreirati koliko ključeva želite.

Ovo su dostupni jezici:

SpoilerTarget">Spoiler

AZERBEJDŽAN
ALBANAC
ENGLESKI
ARAPSKI
AFRIKANCI
BASKIJSKI
BJELORUSKI
BUGARSKI
BOSANSKI
VELŠKI
MAĐARSKI
VIJETNAMSKI
HAIĆANSKI
GALICIJSKI
NIZOZEMSKE
GRČKI
GRUZIJSKI
DANSKI
INDONEZIJSKI
IRSKI
TALIJANSKI
ISLANDSKI
ŠPANJOLSKI
KANNADA
KINESKI
KOREJSKI
LATINSKI
LITVANSKI
MAKEDONSKI
MONGOLSKI
NJEMAČKI
NEPALSKI
NORVEŠKA
PERZIJSKI
POLIRATI
PORTUGALSKI
RUMUNJSKI
RUSKI
SRPSKI
SLOVAČKI
SLOVENSKI
SUNDANSKI
TURSKI
UZBEČKI
UKRAJINSKI
FINSKI
FRANCUSKI
HINDI
HRVATSKI
ČEŠKI
ŠVEDSKI
ŠKOTSKI
ESTONSKI
JAPANSKI

Kada se pridružite poslužitelju, vaš jezik je jezik poslužitelja.
Da biste ga promijenili, samo upišite /lang(dopuštenje: prevoditelj.jezik) i odaberite svoj jezik iz izbornika.

Ako ne znate kako dodati ovisnosti, pročitajte ovdje.

Developer
Provjerite koristite li Javu >= 8.
Dodajte JAR svojoj putanji izgradnje. Zatim postavite postavku "Manual Manifest" i izradite svoj MANIFEST.MF za projekt. Pisati:

Glavna klasa: vaš.paket.klasa
Putanja klase: ..\lib\Translator.jar

Vlasnici poslužitelja
Provjerite koristite li Javu >= 8.
Stvorite mapu pod nazivom lib u glavnom korijenu poslužitelja i stavite ovdje JAR.
Također, trebate ga staviti u svoju mapu dodataka.

//Slanje poruke automatski prevedene na jezik igrača
p.sendMessage("§a" + Translator.translate("Zdravo!", p));

//Slanje poruke prevedene ručno
p.sendMessage("§a" + Translator.translate("Hello!", Language.ENGLISH, Language.ITALIAN));

//Dohvaćanje jezika poslužitelja
Jezik serverLang = Translator.getServerLanguge();

//Dohvaćanje jezika igrača
Jezik playerLang = Translator.getPlayerLanguage(p);

  • Ako ponovno učitate API dok je uključen dodatak koji ga koristi, on će se srušiti. Za ručni popravak uklonite dodatak, ponovno učitajte API i učitajte dodatak
  • Kodovi boja nisu podržani. Za njihovu upotrebu pogledajte gornje primjere
  • Malo kašnjenje (API treba prevesti izvorni tekst i primiti JSON)

Ako imate bilo kakvih problema, napišite post u raspravi ili me kontaktirajte putem privatnih poruka. Neću odgovarati na izvješća o pogreškama u odjeljku s recenzijama.

Trenutno ne postoje dodaci koji koriste ovaj API. Ako ga koristite, recite mi i ja ću ga dodati ovdje

Nedavne recenzije

  1. Verzija: 1.0

    Grande frate! Ho letto Powered by Gamehosting, quindi penso tu sia italiano? se si: sai perché da questo errore all" avvio?

    P.s (ho letto impossibile trovare il percorso specificato, ma la cartella ci sta)

    : java.io.IOException: Impossible trovare il percorso specificato
    : na java.io.WinNTFileSystem.createFileExclusively(Nativna metoda)
    : na java.io.File.createNewFile(Nepoznati izvor)
    : na eu.iamgio.translator.UsersFileLoader.loadRegisterFile(UsersFileLoader.java:21)
    : na eu.iamgio.translator.Translator.onEnable(Translator.java:35)
    : na org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321)
    : na org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:340)
    : na org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405)
    : na org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugin(CraftServer.java:357)
    : na org.bukkit.craftbukkit.v1_8_R3.CraftServer.enablePlugins(CraftServer.java:317)
    : na net.minecraft.server.v1_8_R3.MinecraftServer.s(MinecraftServer.java:414)
    : na net.minecraft.server.v1_8_R3.MinecraftServer.k(MinecraftServer.java:378)
    : na net.minecraft.server.v1_8_R3.MinecraftServer.a(MinecraftServer.java:333)
    : na net.minecraft.server.v1_8_R3.DedicatedServer.init(DedicatedServer.java:263)
    : na net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:525)
    : na java.lang.Thread.run(Nepoznati izvor)

Objavljeno krajem 2015. Međutim, uglavnom, samo su napredni programeri odvojili vrijeme da saznaju koliko je moćna ova ponuda.

WordPress REST API paket objedinjuje sva moderna ažuriranja, pružajući ugrađeni API koji se može integrirati u teme, mobilne aplikacije i više. Drugim riječima, programerima omogućuje odvajanje front-end sučelja od upravljanja podacima, dopuštajući bilo kojoj aplikaciji interakciju s WordPressom. Učenje o tome kako ovaj alat radi može otvoriti vrata gotovo beskrajnim mogućnostima za proširenje vaše WordPress stranice.

U ovom članku ćemo vam predstaviti WordPress REST API projekt, objasniti zašto je tako dobar, a zatim ponuditi nekoliko ideja za njegovu upotrebu. Stoga ne gubimo vrijeme i počnimo!

Predstavljamo WordPress REST API

Projekt WordPress REST API (REST od Representational State Transfer) potvrđuje da WordPress poduzima korake prema tome da postane punopravna aplikacijska platforma. Njegova je prisutnost uvjerljiva jer dodaje standardni REST API jezgri WordPressa.

Projekt su programeri Ryan McCue i Rachel Baker prvi put postavili na GitHub za programere 2013. godine. Nezavisni dodatak REST API ugrađen je u jezgru WordPressa u prosincu 2015. nakon što je dobio ogromnu podršku i privukao gotovo 100 suradnika voljnih raditi na poboljšanju njegovih mogućnosti.

Budući da je WordPress REST API postao dio jezgre, dokazao je svoju učinkovitost. Evo samo nekoliko stvarnih primjera za jasnoću primjene i inspiraciju u vašim projektima:

  1. Event Espresso koristi REST API kako bi programerima omogućio pristup njihovoj globalnoj infrastrukturi, omogućujući im razvoj aplikacija pomoću njihovih usluga.
  2. Simmer programerima omogućuje pristup API-ju kako bi proširili svoju funkcionalnost u potpunu mobilna aplikacija ili prilagođavanje tema.
  3. JoinIn nudi vlastiti "ugradivi" widget koristeći REST API, popunjavajući ga relevantnim podacima gdje god se prikazuju.

Ovo je samo vrh ledenog brijega kada su u pitanju inovativne svrhe REST API-ja. Međutim, raspravimo kako radi sam REST API.

Kako radi WordPress REST API

Ukratko, REST API radi manipulirajući tekstualnim podacima s jedne lokacije na drugu bez izravnog pristupa bazi podataka ili korisničkom sučelju. Postoje mnoge vrste API-ja (Application Programming Interfaces), unatoč tome, REST ostaje moderan i relevantan standard.

REST API prenosi se putem pristupnih točaka protokola za prijenos hiperteksta (HTTP) pomoću formata JavaScript Object Notation (JSON). Jednostavno rečeno, ove tehnologije omogućuju pristup API-jima pomoću jedinstvenih web adresa za isporuku podataka koji se ponašaju kao JavaScript objekti.

Ako nikada niste radili s JavaScriptom ili njegovim definicijama objekata, naučite osnove JSON-a. Sada kada smo malo razjasnili koncept REST API-ja, razgovarajmo o tome kako on može imati veliki utjecaj na proces razvoja pomoću WordPressa.

Što WordPress REST API znači za programere?

WordPress REST API univerzalni je integrator bilo koje WordPress instalacije s bilo kojom aplikacijom na web poslužitelju ili vašem operacijski sustav. U konačnici, to znači da je jedino ograničenje onoga čime se može graditi koristeći WordPress, samo je naša mašta. Možete izraditi bilo koju aplikaciju napisanu na bilo kojoj platformi ili jeziku i koristiti WordPress za obradu podataka putem REST API-ja. Otvorena i prijateljska WordPress zajednica nudi ogromne mogućnosti.

REST API temelji se na JavaScriptu, koji dobiva sve veću pozornost, što ukazuje na to koje je programske jezike važno znati. Uskoro ćete otkriti da je JavaScript na strani poslužitelja novi PHP. To se već može vidjeti u novom softveru WordPress.com, Calypso, koji u potpunosti radi na JavaScriptu i REST API-ju.

Standardizacijom načina na koji aplikacije (uključujući jezgru WordPressa) komuniciraju s podacima WordPressa, razvoj WordPressa postat će lakši i intuitivniji. Štoviše, olakšat će integraciju s platformama trećih strana.

Nadam se da sada imate više razloga zašto je važno početi učiti kako koristiti ovu tehnologiju sada. Vrijeme je da napravite prve korake prema korištenju REST API-ja u vlastitom radu!

5 koraka za početak rada s WordPress REST API-jem

Kao što smo ranije opisali, REST API može se koristiti s bilo kojom aplikacijom ili bilo kojim programskim jezikom koji može pozivati ​​HTTP resurse. Usredotočit ćemo se na korištenje naredbenog retka za izradu REST API zahtjeva jer je to najjednostavnija metoda s najmanjom vjerojatnošću uvođenja pogrešaka koje mogu umanjiti proces učenja.

Da biste to učinili, morate na svom računalu otvoriti program sa sučeljem naredbenog retka (Command Line Interface CLI) - terminal na macOS-u ili Linuxu i naredbeni redak na Windowsima. CLI vam omogućuje izravnu interakciju s REST API-jem, bez potrebe za pisanjem dodatnih skripti za traženje i obradu informacija. Svaki zahtjev koji napišete u CLI-ju može biti skripta u PHP-u, JavaScript-u ili nekom drugom jeziku, ali metoda će za svaki biti drugačija. Izravno izvršavanje naredbi u CLI. Samo upišite naredbu koju želite i pritisnite Enter.

Također preporučujemo postavljanje demo stranice ili testiranje na lokalnoj razini umjesto isprobavanja ovih koraka na web stranici uživo. I na kraju, još jedan uvjet je da WordPress verzija vaše stranice bude 4.4 ili novija. Ako ste spremni, počnimo!

Korak 1: Upoznajte osnovne koncepte REST API-ja

Prije nego što počnemo, upoznajmo se s ključnim konceptima REST API-ja. Postoji samo pet osnovnih pojmova i pojmova s ​​kojima biste se trebali upoznati. Pogledajmo ih:

  1. Rute ('Rute') i Resursi ili pristupne točke ('Krajnje točke'). Ovo je najvažniji aspekt u razumijevanju REST API-ja. Rute vam pomažu u kretanju između vaših resursa kada je određena HTTP metoda (kao što je statički skup podataka ili radnja) povezana s određenom rutom. Na primjer, /wp-json/ je ruta konfigurirana kao resurs stvoren da nam pokaže dostupne rute.
  2. Zahtjevi. Oni se stvaraju pokretanjem pravih resursa i prolaskom kroz podatke.
  3. odgovor ( odgovori). Ukratko, pružanje podataka koje ste tražili ili vraćanje pogreške kako bismo vas obavijestili da je nešto pošlo po zlu.
  4. Sheme. Ispod su predlošci odgovora kako biste uvijek točno znali gdje tražiti podatke koji su vam potrebni.
  5. Klase kontrolera. Omogućuju vam stvaranje vlastitih ruta i resursa. Sve dok ne morate brinuti o tome, oni će kasnije postati korisniji.

Nakon što shvatite ovih pet koncepata, možete početi dublje zaranjati u sam REST API, počevši od njegovih pristupnih točaka.

Korak 2: Saznajte najkorisnije REST API pristupne točke

WordPress REST API nudi referentni priručnik sa svim pristupnim točkama (resursima) gdje možete pronaći one koje su vam najkorisnije. Prije svega, trebate znati kako konstruirati HTTP REST API poziv. Osnovni dio svakog WordPress API poziva izgleda ovako, zamijeni vašadomena.com tvojima:

http://vašadomena.com/wp-json/

Vezu možete testirati pokretanjem naredbe curl u svom CLI-ju pomoću vlastitog URL-a:

Curl -X OPCIJE -i http://yourdomain.com/wp-json/

Trebala bi vas pozdraviti poruka od HTTP. Ovu naredbu možete dodatno modificirati koristeći neke od glavnih resursa. Sada samo koristimo GET verziju curla.

Da biste dobili JSON popis svojih postova u WordPressu, možete upotrijebiti sljedeće:

Nakon ovoga pokušajte sljedeće kako biste provjerili sve postojeće WordPress stranice:

Curl -X GET -i http://yourdomain.com/wp-json/wp/v2/pages

Možete eksperimentirati sa svakom od ovih pristupnih točaka (i više!) u CLI-u da vidite kakav odgovor svaka proizvodi.

Korak 3: Naučite osnove REST API provjere autentičnosti

Sada je vrijeme da naučite o autentifikaciji. Neke radnje i podaci u REST API-ju su javni, dok drugi zahtijevaju da budete prijavljeni kao administrator. Međutim, ovo je REST API i nema mjesta za prijavu za autorizaciju. Umjesto toga, možete se autentificirati tijekom zahtjeva koji zahtijevaju administratorski pristup, kao što je pregledavanje neobjavljenih postova ili mijenjanje postova.

Započnimo s instaliranjem WordPress REST API Basic Auth dodatka. Ovo je jednostavan dodatak za programere za brzo učenje REST API-ja i nije namijenjen pravim web stranicama. Međutim, postupak instalacije je isti kao i za bilo koji drugi dodatak.

Nakon što je Basic Auth instaliran, moći ćete se autentificirati putem CLI-ja s oznakom korisnik. Ovdje je primjer kako primijeniti metodu provjere autentičnosti korisnika pomoću kovrča za pregled neobjavljenih postova:

Curl -X GET --user korisničko ime:lozinka -i http://yourdomain.com/wp-json/wp/v2/posts?status=draft

Autentifikacija će biti potrebna za sve radnje osim pregleda javnih informacija. Nakon što ste naučili osnovnu provjeru autentičnosti, možete istražiti druge opcije koje preporučuje dokumentacija REST API-ja za vaš razvoj.

Korak 4: Odaberite svoj prvi WordPress post koristeći REST API

Nakon što shvatite kako napraviti osnovne REST API pozive s curlom, pokušajte odabrati određeni unos. Prvo, prikažimo sve publikacije, kao što smo učinili ranije:

Curl -X GET -i http://yourdomain.com/wp-json/wp/v2/posts

Ovaj trik s dodatkom ID-a možete koristiti za bilo koji REST API resurs, bilo da želite prikazati post, stranicu ili taksonomiju.

Korak 5: Izmjene u vašoj WordPress objavi putem REST API-ja

Na kraju, pokušajmo unijeti izmjene u publikaciju koju ste odabrali. Umjesto naredbi OPCIJA ili DOBITI, ovaj put ćemo koristiti POST napraviti promjene. DOBITI koristi se za čitanje podataka dok POST- poslati ih.

Preimenujmo vaš post podnošenjem zahtjeva POST zajedno s podacima za provjeru autentičnosti. Nove promjene bit će napravljene pomoću zastavice d na kraju naredbe. Prenijet ćemo korisničke JavaScript objekt postavljanjem varijable naslova na njezinu vrijednost, kao što je Moj novi naslov kao što je prikazano u donjem kodu:

Curl -X POST --korisničko korisničko ime:lozinka http://vašadomena.com/wp-json/wp/v2/posts/ -d "("title":"Moj novi naslov")"

Obavezno zamijenite korisničko ime, lozinku, ID objave i naslov svojima. Možete ponovno odabrati danu publikaciju kako biste provjerili promjene:

Curl -X GET -i http://yourdomain.com/wp-json/wp/v2/posts/

Čestitamo! Upravo ste izvršili svoja prva administratorska uređivanja pomoću WordPress REST API-ja. Naravno, ovaj osnovni vodič samo zagrebe površinu mogućnosti koje pruža REST API, ali je prilično solidan početak!

Zaključak

WordPress REST API moćna je nova verzija jezgre WordPressa i mnogi programeri već su počeli koristiti njegove mogućnosti. U skladu s tim, nakon što sam se sada upoznao s načinom rada nova prilika, poboljšat ćete svoje vještine programiranja i moći ćete izraditi aplikaciju koristeći WordPress kao okvir.

Da rezimiramo, prošli smo kroz pet koraka na putu da naučimo kako komunicirati s WordPress REST API-jem:

  1. Uvod u osnovne REST API koncepte.
  2. Najkorisniji resursi/pristupne točke REST API-ja.
  3. Naučite osnove REST API provjere autentičnosti.
  4. Dohvaćanje posta na WordPressu pomoću REST API-ja.
  5. Izmijenite WordPress post pomoću REST API-ja.

Koja pitanja imate o WordPress REST API-ju? Pišite nam u komentarima!