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

Dodaci su ključni dio ekosistema webpacka i pružaju zajednici moćan način da se uključi u proces kompilacije webpacka. Dodatak je u stanju da se poveže na ključne događaje koji se aktiviraju tokom svake kompilacije. Na svakom koraku, dodatak će imati puni pristup kompajleru i, kada je primjenjivo, trenutnoj kompilaciji.

Za uvod na visokom nivou u pisanje dodataka, počnite sa pisanjem dodatka.

Počnimo tako što ćemo prijeći preko uslužnog programa koji se može dodirnuti, koji pruža okosnicu sučelja dodataka webpacka.

Tapable

Ova mala biblioteka je osnovni uslužni program u webpacku, ali se može koristiti i drugdje za pružanje sličnog sučelja dodataka. 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 funkcije ProgressPlugin.

Da bi prijavio napredak, dodatak se mora utaknuti u kuku koristeći opciju context: true:

Kompajler. kuke. emitovati. tapAsync (( naziv: "MyPlugin" , kontekst: true ) , (kontekst, kompajler, povratni poziv) => ( const reportProgress = kontekst && kontekst. reportProgress; if (reportProgress) reportProgress (0.95, "Početak rada") ; setTimeout (( ) => ( if (reportProgress) reportProgress (0.95, "Posao završen" ) ; povratni poziv () ; ) , 1000 ) ; ) ) ;

Funkcija reportProgress se može pozvati sa ovim argumentima:

reportProgress(postotak, ... args);
  • postotak: Ovaj argument se ne koristi; umjesto toga, ProgressPlugin će izračunati postotak na osnovu trenutnog hooka.
  • ...args: Bilo koji broj stringova, koji će biti proslijeđeni rukovaocu ProgressPlugin kako bi se prijavili korisniku.

Imajte na umu da samo podskup kompajlerskih i kompilacijskih kuka podržava funkciju reportProgress. Pogledajte ProgressPlugin za kompletnu listu.

Logging

API za evidentiranje dostupan je od objavljivanja webpacka 4.37. Kada je evidentiranje omogućeno u konfiguraciji statistike i/ili kada je omogućeno infrastrukturno evidentiranje, dodaci mogu evidentirati poruke koje će biti ispisane u odgovarajućem formatu dnevnika (statistika, infrastruktura).

  • Dodaci bi trebali radije koristiti compilation.getLogger("PluginName") za evidentiranje. Ova vrsta evidentiranja se pohranjuje u statistici i formatira u skladu s tim. Korisnik ga može filtrirati i izvoziti.
  • Dodaci mogu koristiti compiler.getInfrastructureLogger("PluginName") za evidentiranje. Korišćenje evidencije infrastrukture nije pohranjeno u statistici i stoga nije formatirano. Obično se prijavljuje direktno na konzolu/kontrolnu tablu/GUI. Korisnik može filtrirati.
  • Dodaci mogu koristiti posebnu rezervnu logiku za otkrivanje podrške za evidentiranje compilation.getLogger ? compilation.getLogger("PluginName") : konzola za pružanje rezerve za slučajeve kada se koristi starija verzija web paketa koja ne podržava metodu getLogger na objektu kompilacije.

Sljedeći koraci

Pogledajte odeljak zakačivanja kompajlera za detaljan spisak svih dostupnih zakačivača kompajlera i parametara koje one čine dostupnima.

Dodatak je dinamički učitana biblioteka (DLL). Nakon instaliranja programa, svi dodaci uključeni u distribuciju stavljaju se u direktorij c:\Program Files (x86)\Common Files\Soft Gold\Inventory 14\Plugins\...*.abl ekstenzija je potrebna za automatsko preuzimanje dodatak iz navedenog direktorija kada se aplikacija pokrene. Dodatak se također može učitati sa bilo koje druge lokacije na disku navođenjem putanje pretraživanja u postavkama.

Inicijalizacija API-ja dodatka

(Delphi VCL ekstenzije)

(Plugin interfejs za ABViewer/Inventar)

(Autorska prava (c) 2002-2010 softverska kompanija SoftGold)

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

unit sgPluginItem;

interfejs

implementacija

XMLDocRef: IXMLDocument = nil;

ClientRef: IXMLNode = nil;

P: Pointer = nula;

PluginsHostWnd: HWND = 0;

PluginsHostWndName: string = "";

XMLAtomString: string = "";

procedure InitializeDoc;

početi

// dobivanje jedinstvenog imena klase prozora s parametrima

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

// pronalaženje samog prozora

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

Ako PluginsHostWnd<>0 onda

Počni

// dobijemo atomski niz koji treba dobiti xml parametar dokument

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

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

Ako je dodijeljen(XMLDocRef) onda

Počni

// dodavanje elementa na listu

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

// inicijaliziranje adrese funkcije Invoke

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

End;

End;

kraj;

inicijalizacija

Koinicijaliziraj(P);

InitializeDoc;

Postavljanje i pokretanje demo verzije dodatka

Demo verzija dodatka se automatski konfiguriše prilikom instaliranja programa i povezuje se odmah nakon pokretanja Inventara. Paket uključuje izvorni kod komponente (naziv projekta sgPlugin.dpk) i demo verziju dodatka (naziv projekta plug1.dpr).

Procedura za pokretanje dodatka iz načina za otklanjanje grešaka:

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

▪ Postavite u opcije projekta:

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

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

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

▪ Pokreni za izvršenje.

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

Hooks obezbeđuje WordPress kako bi omogućio vašem dodatku da se "zakači" na ostatak WordPress-a; to jest, pozivati ​​funkcije 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 bilo radnjom ili filterom. Na primjer, ako želite da vaš dodatak promijeni tekst objave, možete dodati funkciju radnje u publish_post (tako da se objava modificira kako je spremljena u bazu podataka) ili funkciju filtriranja u the_content (tako da je objava modificirano kako je prikazano na ekranu pretraživača).

Za detaljnu listu svih akcija i zakačica za filtriranje u WP-u pogledajte bazu podataka WordPress zakačivaca Adama Browna.

Referenca funkcije

Funkcije filtera
Akcije Funkcije
Funkcije aktivacije/deaktivacije/deinstaliranja

Akcije

Akcije pokreću se određenim događajima koji se dešavaju u WordPress-u, kao što je objavljivanje objave, promjena tema ili prikazivanje . Akcija je prilagođena PHP funkcija definirana u vašem dodatku (ili temi) i hooked, tj. spreman da odgovori na neke od ovih događaja. Radnje obično čine jedno ili više od sljedećeg:

  • Izmijenite podatke baze podataka.
  • Pošaljite email poruku.
  • Izmijenite generirani ekran administracije ili front-end stranicu poslanu korisničkom pretraživaču.

Osnovni koraci da se to ostvari (detaljnije opisani u nastavku) su:

  1. Kreirajte 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 sa događajem pomoću funkcije.
  3. Stavite svoju PHP funkciju u datoteku dodatka i aktivirajte je.

Kreirajte funkciju akcije

Prvi korak u kreiranju akcije u vašem dodatku je da kreirate PHP funkciju s radnjom funkcionalnošću vašeg dodatka i stavite je u datoteku dodatka (vaša datoteka dodatka mora ići u wp-content/plugins imenik). Na primjer, ako želite da vaši prijatelji dobiju e-poruku kad god kreirate novu objavu, možete definirati sljedeću funkciju:

Funkcija email_friends($post_ID) ( $friends = " [email protected],[email protected]"; mail($friends, ažuriran blog "sally", "Upravo sam stavio nešto na svoj blog: http://blog.example.com"); vrati $post_ID; )

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

Bilo koji tekst koji funkcija proizvede (npr. s printom) pojavit će se u izvoru stranice na lokaciji na kojoj je akcija pozvana.

BILJEŠKA: Imajte na umu da drugi dodaci ili WordPress jezgro možda već koriste naziv funkcije na koji ste pomislili. Za više informacija pogledajte sljedeći odjeljak.

Izbjegavanje sudara imena funkcije

Moguće je da je neko kreirao dodatak sa funkcijom koja se zove isto kao ona u vašem dodatku.

Ovo je problem jer PHP ne dozvoljava više funkcija sa istim imenom. Ako dva dodatka pružaju funkciju s istim imenom, ili dodatak pruža funkciju s istim imenom kao WordPress funkcija, blog bi mogao prestati funkcionirati. Postoje dva načina da izbjegnete ovaj problem.

Prvo rješenje je prefiks svake funkcije u vašem dodatku s jedinstvenim skupom znakova. Ako je vaše ime John Q. Public, svoje funkcije možete deklarirati kao funkciju jqp_output() (...) . Verovatnoća da neko sa istim inicijalima uradi istu stvar sa svojim dodatkom je moguća, ali mala.

Drugo - i možda lakše - rješenje je zatvoriti svoje funkcije dodatka u klasu i pozvati metode klase statički. Ovo zvuči komplikovanije nego što jeste.

Razmotrite ovu klasu, koja se proširuje na primjere date iznad:

Razrednik e-pošte ( statička funkcija send($post_ID) ( $friends = " [email protected],[email protected]"; mail($friends,"sally"s blog je ažuriran","Upravo sam stavio nešto na svoj blog: http://blog.example.com"); vrati $post_ID; ) ) add_action("publish_post", array("emailer", "send"));

Ova klasa je pozvala emailer ima metodu poslati koji implementira funkcionalnost dodatka.

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

Funkcija poslati je zaštićen od globalnog imenskog prostora deklaracijom klase. Nije moguće direktno pozvati send(), pa tako ni bilo koju drugu imenovanu funkciju poslati neće se sudariti sa ovim. Ako ste htjeli pozvati send(), trebali biste koristiti operator rezolucije opsega, kao što je ovaj: emailer::send()

Gornji primjer je za statičke metode. Ako imate instancu klase onda to neće raditi. Pozvati metodu instance ti trebas da prosledite instancu kao promenljivu. Uzmite u obzir gornji primjer koji je modificiran da se ovo uzme u obzir:

Klasilac e-pošte ( funkcija send($post_ID) ( $friends = " [email protected],[email protected]"; mail($friends,"sally"s blog je ažuriran","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"));

Časovi su komplikovana tema. Pročitajte više o njima u PHP dokumentaciji o klasama.

Zakačite se za WordPress

Nakon što je vaša funkcija definirana, sljedeći korak je da je "zakačite" ili registrujete na WordPress-u. Da biste to učinili, pozovite globalni prostor za izvršavanje vašeg dodatka:

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

Hook_name Ime zakačice za akciju koju obezbeđuje WordPress, koji govori s kojim događajem bi vaša funkcija trebala biti povezana. your_function_name Ime funkcije koju želite da se izvrši nakon događaja navedenog u hook_name . Ovo može biti standardna php funkcija, funkcija prisutna u jezgru WordPressa ili funkcija koju ste vi definirali u datoteci dodatka (kao što je "email_friends" definiran gore). prioritet Opcijski cjelobrojni argument koji se koristi za specificiranje redoslijeda u kojem se izvršavaju funkcije povezane s određenom radnjom (podrazumevano: 10). Niži odgovarajući brojevi s ranijim izvršavanjem, a funkcije s istim prioritetom se izvršavaju redoslijedom dodanim radnji. accepted_args Neobavezni cjelobrojni argument koji definira koliko argumenata vaša funkcija može prihvatiti (podrazumevano 1), korisno jer neke zakačice mogu prenijeti više od jednog argumenta vašoj funkciji. Ovaj parametar je nov u izdanju 1.5.1.

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

Add_action("publish_post", "email_friends");

Instalirajte i aktivirajte

Posljednji korak u pokretanju vašeg filtera za rad je da instalirate datoteku i aktivirate dodatak. PHP funkcija koju ste napisali i poziv moraju zajedno ići u PHP datoteku, a PHP datoteka mora biti instalirana u wp-content/plugins imenik. Nakon što se instalira, morat ćete posjetiti admin odjeljak WordPress-a i aktivirati svoj dodatak; pogledajte za više detalja.

Trenutne kuke za filtere

Aktivacija/Deaktivacija/Deinstaliranje

Ako vaš dodatak ima zadatke koje treba dovršiti samo u vrijeme aktivacije ili deaktivacije, može koristiti i Referenca za akciju - popis WordPress-ovih akcionih kuka

Eksterni resursi

  • WordPress Hooks Database Adama Browna, baza podataka svih WordPress kukica, koja pokazuje iz koje verzije dolaze i povezuje se sa izvornim kodom koji ih koristi. Ovo je najpotpunije.
  • Otto na WordPressu:

By Yandex.
To je web usluga, tako da ne morate to dodavati.

Vlasnici servera trebaju poseban ključ da bi omogućili ovaj dodatak.
Prijavite se na web stranicu Yandexa, a zatim nabavite ovaj ključ, a zatim ga stavite u konfiguraciju API-ja.
Imajte na umu da besplatni ključ podržava "samo" 10.000.000 znakova svakog mjeseca, ali možete kreirati koliko ključeva želite.

Ovo su dostupni jezici:

SpoilerTarget">Spoiler

AZERBEJDŽAN
ALBANSKI
ENGLESKI
ARABIC
AFRIKAANCI
BASQUE
BELORUSIJA
BUGARSKI
BOSANSKI
WELSH
HUNGARIAN
VIETNAMESE
HAITIAN
GALICIAN
DUTCH
GRČKI
GEORGIAN
DANISH
INDONEZIJAN
IRISH
ITALIAN
ICELANDIC
ŠPANSKI
KANNADA
CHINESE
KOREJSKI
LATIN
LITHUANSKI
MAKEDONSKI
MONGOLSKI
NJEMAČKI
NEPALI
NORWEGIAN
PERZIJSKI
POLJSKI
PORTUGALSKI
RUMUNSKI
RUSKI
SRPSKI
SLOVAČKI
SLOVENSKI
SUNDANESE
TURSKI
UZBEK
UKRAINIAN
FINSKI
FRENCH
HINDI
HRVATSKI
CZECH
SWEDISH
SCOTTISH
ESTONIJSKI
JAPANSKI

Kada se pridružite serveru, vaš jezik je jezik servera.
Da ga promijenite, samo ukucajte /lang(dozvola: translator.lang) i izaberite svoj jezik iz menija.

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

Developer
Budite sigurni da koristite Javu >= 8.
Dodajte JAR svojoj putanji izrade. Zatim postavite postavku "Manual Manifest" i kreirajte svoj MANIFEST.MF za projekat. Pisati:

Glavna klasa: your.package.Class
Putanja klase: ..\lib\Translator.jar

Vlasnici servera
Budite sigurni da koristite Javu >= 8.
Kreirajte folder pod nazivom lib u korijenu glavnog servera i stavite ovdje JAR.
Također, morate 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("Zdravo!", Jezik.ENGLISH, Language.ITALIAN));

//Dobijanje jezika servera
Jezik serverLang = Translator.getServerLanguge();

//Dobivanje jezika igrača
Jezik playerLang = Translator.getPlayerLanguage(p);

  • Ako ponovo učitate API dok je dodatak koji ga koristi omogućen, on će se srušiti. Da popravite ručno, skinite dodatak, ponovo učitajte API i učitajte dodatak
  • Kodovi boja nisu podržani. Da biste ih koristili, pogledajte primjere iznad
  • Malo kašnjenje (API treba da prevede originalni tekst i primi JSON)

Ako imate bilo kakav problem, napišite post u diskusiji ili me kontaktirajte putem privatnih poruka. Neću odgovarati na izvještaje o greškama u odjeljku recenzija.

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: Nemoguće trovare il percorso specificato
    : na java.io.WinNTFileSystem.createFileExclusively(Native Method)
    : na java.io.File.createNewFile(Nepoznat 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 (Nepoznat 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 još mnogo toga. Drugim riječima, omogućava programerima da odvoje front-end interfejs od upravljanja podacima, omogućavajući bilo kojoj aplikaciji interakciju sa WordPress-om. Učenje kako ovaj alat radi može otvoriti vrata gotovo beskrajnim mogućnostima za proširenje vaše WordPress stranice.

U ovom članku ćemo vas upoznati sa WordPress REST API projektom, objasniti zašto je tako dobar, a zatim ponuditi neke ideje za njegovu upotrebu. Zato ne gubimo vrijeme i počnimo!

Predstavljamo WordPress REST API

WordPress REST API projekat (REST from Representational State Transfer) potvrđuje da WordPress poduzima korake ka tome da postane punopravna platforma za aplikacije. Njegovo prisustvo je ubedljivo jer dodaje standardni REST API jezgru WordPress-a.

Projekat je prvi put postavljen na GitHub za programere 2013. godine od strane programera Ryan McCue i Rachel Baker. Nezavisni REST API dodatak ugrađen je u WordPress jezgro u decembru 2015. nakon što je dobio ogromnu podršku i privukao skoro 100 saradnika koji su voljni da rade na poboljšanju njegovih mogućnosti.

Otkako je WordPress REST API postao dio jezgra, dokazao je svoju efikasnost. 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ćavajući im da razvijaju aplikacije koristeći njihove usluge.
  2. Simmer omogućava programerima pristup API-ju kako bi proširili svoju funkcionalnost u punopravnu mobilna aplikacija ili prilagođavanje tema.
  3. JoinIn obezbeđuje sopstveni "ugradivi" widget koristeći REST API, popunjavajući ga relevantnim podacima gde god da se prikazuje.

Ovo je samo vrh ledenog brega kada su u pitanju inovativne svrhe REST API-ja. Međutim, hajde da razgovaramo o tome kako sam REST API radi.

Kako radi WordPress REST API

Ukratko, REST API radi tako što manipuliše tekstualnim podacima sa jedne lokacije na drugu bez direktnog pristupa bazi podataka ili korisničkog interfejsa. Postoji mnogo tipova API-ja (Aplikacijski programski interfejsi), uprkos tome, REST ostaje moderan i relevantan standard.

REST API se prenosi preko pristupnih tačaka protokola Hyper Text Transfer Protocol (HTTP) koristeći format JavaScript Object Notation (JSON). Jednostavno rečeno, ove tehnologije pružaju pristup API-jima koristeći jedinstvene web adrese za isporuku podataka koji se ponašaju kao JavaScript objekti.

Ako nikada niste radili sa JavaScript-om ili njegovim definicijama objekata, naučite osnove JSON-a. Sada kada smo malo raščistili koncept REST API-ja, hajde da pričamo o tome kako on može imati veliki uticaj na razvojni proces korišćenjem WordPress-a.

Šta WordPress REST API znači za programere?

WordPress REST API je univerzalni integrator bilo koje WordPress instalacije sa bilo kojom aplikacijom na web serveru ili vašem operativni sistem. U konačnici, to znači da je to jedino ograničenje onoga s čime se može graditi koristeći WordPress, je samo naša mašta. Možete kreirati 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 je baziran na JavaScript-u, kojem se posvećuje sve veća pažnja, što ukazuje na to koje je programske jezike važno znati. Uskoro ćete otkriti da je JavaScript na strani servera novi PHP. Ovo se već može vidjeti u novom softveru WordPress.com, Calypso, koji u potpunosti radi na JavaScript-u i REST API-ju.

Standardizacijom načina na koji aplikacije (uključujući WordPress jezgro) komuniciraju sa WordPress podacima, razvoj WordPress-a će postati lakši i intuitivniji. Štaviše, to će olakšati integraciju sa 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 ka korištenju REST API-ja u svom radu!

5 koraka za početak korištenja WordPress REST API-ja

Kao što smo ranije pisali, REST API se može koristiti sa bilo kojom aplikacijom ili bilo kojim programskim jezikom koji može pozvati HTTP resurse. Fokusiraćemo se na korišćenje komandne linije za pravljenje REST API zahteva jer je to najjednostavniji metod sa najmanjim šansama za uvođenje grešaka koje mogu da ometaju proces učenja.

Da biste to uradili, potrebno je da na računaru otvorite program sa interfejsom komandne linije (Command Line Interface CLI) - terminal na macOS ili Linux i komandna linija na Windows-u. CLI vam omogućava direktnu interakciju sa REST API-jem, bez potrebe za pisanjem dodatnih skripti za traženje i obradu informacija. Svaki zahtjev koji napišete u CLI-u može biti skripta u PHP-u, JavaScript-u ili nekom drugom jeziku, ali metoda će biti različita za svaki. Direktno izvršavanje naredbi u CLI. Samo upišite željenu naredbu i pritisnite Enter.

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

Korak 1: Upoznajte osnovne koncepte REST API-ja

Prije nego počnemo, hajde da se upoznamo s ključnim konceptima REST API-ja. Postoji samo pet osnovnih koncepata i pojmova sa kojima biste se trebali upoznati. Pogledajmo ih:

  1. Rute ('Rute') i Resursi ili pristupne tačke ('Krajnje tačke'). Ovo je najvažniji aspekt u razumijevanju REST API-ja. Rute vam pomažu da se krećete između vaših resursa kada je određena HTTP metoda (kao što je statički skup podataka ili akcija) povezana s određenom rutom. Na primjer, /wp-json/ je ruta konfigurirana kao resurs kreiran da nam pokaže dostupne rute.
  2. Zahtjevi. Oni se stvaraju pokretanjem pravih resursa i prolaskom kroz podatke.
  3. odgovori ( Odgovori). Ukratko, pružanje podataka koje ste zatražili ili vraćanje greške da biste znali da je nešto pošlo po zlu.
  4. Šeme. Ispod su predlošci odgovora kako biste uvijek znali gdje tačno tražiti podatke koji su vam potrebni.
  5. Kontroler klase. Oni vam omogućavaju da kreirate sopstvene rute i resurse. Sve dok ne morate da brinete o tome, oni će kasnije postati korisniji.

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

Korak 2: Saznajte najkorisnije REST API pristupne tačke

WordPress REST API nudi referentni priručnik sa svim pristupnim tačkama (resursima) gde možete pronaći one koje su vam najkorisnije. Prije svega, morate znati kako konstruirati HTTP REST API poziv. Osnovni dio bilo kojeg WordPress API poziva izgleda ovako, zamijeni vašdomen.com na tvoje:

Http://yourdomain.com/wp-json/

Možete testirati vezu tako što ćete pokrenuti naredbu curl u svom CLI koristeći svoj URL:

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

Trebalo bi da vas pozdravi poruka od HTTP. Možete dalje modificirati ovu naredbu koristeći neke od glavnih resursa. Sada samo koristimo GET verziju curl-a.

Da biste dobili JSON listu svojih objava u WordPress-u, možete koristiti sljedeće:

Nakon ovoga, pokušajte sljedeće da provjerite sve postojeće WordPress stranice:

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

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

Korak 3: Naučite osnove REST API autentifikacije

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 radi autorizacije. Umjesto toga, možete se autentifikovati tokom zahtjeva koji zahtijevaju administratorski pristup, kao što je gledanje neobjavljenih postova ili mijenjanje postova.

Počnimo s instaliranjem WordPress REST API Basic Auth dodatka. Ovo je jednostavan dodatak za programere da brzo nauče REST API i nije namijenjen pravim web stranicama. Međutim, proces instalacije je isti kao i za bilo koji drugi dodatak.

Kada se instalira Basic Auth, moći ćete se autentifikovati putem CLI-a sa zastavicom korisnik. Evo primjera kako primijeniti metodu provjere autentičnosti korisnika koristeći curl da pogledate neobjavljene postove:

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

Provjera autentičnosti će biti potrebna za bilo koju operaciju osim pregleda javnih informacija. Jednom kada se savladate sa osnovnom autentifikacijom, možete istražiti druge opcije preporučene u REST API dokumentaciji za vaš razvoj.

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

Kada shvatite kako napraviti osnovne REST API pozive pomoću curl-a, pokušajte odabrati određeni unos. Prvo, prikažimo sve publikacije, kao i ranije:

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

Možete koristiti ovaj trik ID dodatka za bilo koji REST API resurs, bilo da želite prikazati objavu, stranicu ili taksonomiju.

Korak 5: Izmjena vaše WordPress objave putem REST API-ja

Na kraju, hajde da pokušamo da unesemo izmene u publikaciju koju ste izabrali. Umjesto komandi OPCIJA ili GET, ovaj put ćemo koristiti POŠTA napraviti promjene. GET koristi se za čitanje podataka dok POŠTA- da ih pošaljem.

Preimenujmo vaš post podnošenjem zahtjeva POŠTA zajedno sa podacima o autentifikaciji. Nove promjene će se izvršiti korištenjem zastavice d na kraju komande. Mi ćemo prenijeti korisničke JavaScript objekat postavljanjem varijable naslova na njenu vrijednost, kao što je Moj novi naslov kao što je prikazano u kodu ispod:

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

Obavezno zamijenite korisničko ime, lozinku, ID objave i naslov svojim. Možete ponovo odabrati datu publikaciju da provjerite promjene:

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

Čestitamo! Upravo ste napravili svoje prve administratorske izmjene koristeći WordPress REST API. Naravno, ovaj osnovni vodič samo zagreba površinu mogućnosti koje pruža REST API, ali je prilično solidan početak!

Zaključak

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

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

  1. Uvod u osnovne REST API koncepte.
  2. Najkorisniji resursi / REST API pristupne tačke.
  3. Naučite osnove REST API provjere autentičnosti.
  4. Preuzimanje objave na WordPress-u pomoću REST API-ja.
  5. Izmijenite WordPress objavu koristeći REST API.

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