API plagini. API plagini Minecraft uchun uchinchi tomon api plaginini ulash

Plaginlar veb-paket ekotizimining asosiy qismidir va hamjamiyatga veb-paketni kompilyatsiya qilish jarayoniga kirishning kuchli usulini taqdim etadi. Plagin har bir kompilyatsiya davomida ishga tushiriladigan asosiy voqealarga ulanishi mumkin. Har bir qadamda plagin bo'ladi. kompilyatorga va agar mavjud bo'lsa, joriy kompilyatsiyaga to'liq kirish.

Plaginlarni yozishga yuqori darajadagi kirish uchun plagin yozishdan boshlang.

Keling, veb-paket plagin interfeysining asosini ta'minlovchi yordamchi dasturni ko'rib chiqishdan boshlaylik.

Tegish mumkin

Ushbu kichik kutubxona veb-paketdagi asosiy yordamchi dasturdir, lekin shunga o'xshash plagin interfeysini ta'minlash uchun boshqa joylarda ham foydalanish mumkin. Veb-paketdagi ko'plab ob'ektlar Tapable sinfini kengaytiradi. Sinf tap , tapAsync va tapPromise usullarini ochib beradi, plaginlar kompilyatsiya davomida ishga tushiriladigan maxsus qurish bosqichlarini kiritish uchun foydalanishi mumkin.

ProgressPlugin ning reportProgress funksiyasiga turli argumentlarni o'tkazish orqali chop etilgan mahsulotni moslashtirish mumkin.

Rivojlanish haqida xabar berish uchun plagin kontekstdan foydalanib kancaga tegishi kerak: true variant:

Kompilyator. ilgaklar. chiqaradi. tapAsync (( nomi: "MyPlugin" , kontekst: true ) , (kontekst, kompilyator, qayta qo'ng'iroq) => ( const reportProgress = context && context. reportProgress; if (reportProgress) reportProgress (0.95, "Ish boshlanmoqda" ) ; setTimeout (( ) => ( if (reportProgress) reportProgress (0,95, "Ish tugadi" ); qayta qo'ng'iroq qilish () ; ) , 1000 ); ) );

reportProgress funksiyasi quyidagi argumentlar bilan chaqirilishi mumkin:

reportProgress(foiz, ... args);
  • foiz: Bu argument ishlatilmaydi; Buning o'rniga ProgressPlugin joriy ilgakka asoslangan foizni hisoblab chiqadi.
  • ...args: Foydalanuvchiga xabar berish uchun ProgressPlugin ishlov beruvchisiga uzatiladigan har qanday qatorlar soni.

E'tibor bering, faqat kompilyator va kompilyatsiya ilgaklarining kichik to'plami reportProgress funktsiyasini qo'llab-quvvatlaydi. To'liq ro'yxat uchun ProgressPlugin-ga qarang.

Jurnal yozish

Logging API 4.37 veb-paketi chiqarilgandan beri mavjud. Statistikalar konfiguratsiyasida jurnalga yozish yoqilgan boʻlsa va/yoki infratuzilma jurnali yoqilgan boʻlsa, plaginlar tegishli logger formatida (statistik maʼlumotlar, infratuzilma) chop etiladigan xabarlarni jurnalga kiritishi mumkin.

  • Plaginlar jurnalga yozish uchun compilation.getLogger("PluginName") dan foydalanishni afzal ko'rishlari kerak. Ushbu turdagi jurnallar Statistikada saqlanadi va shunga mos ravishda formatlanadi. U foydalanuvchi tomonidan filtrlanishi va eksport qilinishi mumkin.
  • Plaginlar jurnalga yozish uchun compiler.getInfrastructureLogger("PluginName") dan foydalanishi mumkin. Infratuzilma jurnalidan foydalanish statistikada saqlanmaydi va shuning uchun formatlanmaydi. Odatda u to'g'ridan-to'g'ri konsol/boshqaruv paneli/GUI-ga kiradi. Uni foydalanuvchi filtrlashi mumkin.
  • Plaginlar jurnalni qo'llab-quvvatlashni aniqlash uchun maxsus zaxira mantiqdan foydalanishi mumkin compilation.getLogger ? compilation.getLogger("PluginName"): kompilyatsiya ob'ektida getLogger usulini qo'llab-quvvatlamaydigan eski veb-paket versiyasidan foydalanilganda zaxirani ta'minlash uchun konsol.

Keyingi qadamlar

Barcha mavjud kompilyator ilgaklari va ular mavjud bo'lgan parametrlarning batafsil ro'yxati uchun kompilyator ilgaklari bo'limiga qarang.

Plagin dinamik yuklangan kutubxona (DLL). Dasturni o'rnatgandan so'ng, tarqatishga kiritilgan barcha plaginlar katalogga joylashtiriladi c:\Program Files (x86)\Common Files\Soft Gold\Inventory 14\Plugins\... uchun *.abl kengaytmasi talab qilinadi avtomatik yuklab olish dastur ishga tushganda belgilangan katalogdan plagin. Sozlamalarda qidirish yo'lini belgilab, plaginni diskdagi boshqa istalgan joydan ham yuklash mumkin.

Plagin API ishga tushirilmoqda

(Delphi VCL kengaytmalari)

(ABViewer/Inventory uchun plagin interfeysi)

(Mualliflik huquqi (c) 2002-2010 SoftGold dasturiy ta'minot kompaniyasi)

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

sgPluginItem birligi;

interfeys

amalga oshirish

XMLDocRef: IXMLDocument = nol;

ClientRef: IXMLNode = nol;

P: Pointer = nol;

PluginsHostWnd: HWND = 0;

PluginsHostWndName: string = "";

XMLAtomString: string = "";

InitializeDoc protsedurasi;

boshlanishi

// parametrlar bilan oyna sinfining noyob nomini olish

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

// oynaning o'zini topish

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

Agar PluginsHostWnd<>keyin 0

Boshlanishi

// olish uchun atom satrini oling xml parametri hujjat

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

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

Agar tayinlangan bo'lsa (XMLDocRef).

Boshlanishi

// element qo'shish ro'yxatga

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

// Invoke funksiyasining manzilini ishga tushirish

ClientRef.ChildValues["Invoke"] := IntToId(Integer(@Invoke)); // o'n oltilik $XXXXXXXX

Oxiri;

Oxiri;

oxiri;

ishga tushirish

CoInitialize(P);

InitializeDoc;

Plaginning demo versiyasini sozlash va ishga tushirish

Plaginning demo versiyasi dasturni o'rnatishda avtomatik ravishda sozlanadi va Inventarizatsiya ishga tushirilgandan so'ng darhol ulanadi. Paket komponentning manba kodini (loyiha nomi sgPlugin.dpk) va plaginning demo versiyasini (loyiha nomi plug1.dpr) o'z ichiga oladi.

Plaginni disk raskadrovka rejimidan ishga tushirish tartibi:

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

▪ Loyiha parametrlarida:

Qidiruv yo'li: "..\..\Components\PlugItem";

Chiqarish joyi, masalan: “c:\Program Files\Common Files\Soft Gold\Inventory 14\Plugins”;

Xost ilovasi yana yoqiladi o'rnatilgan dastur, masalan: "c:\Program Files\Soft Gold\Inventory 14\Inventory 14.exe".

▪ Amalga oshirish uchun ishga tushiring.

Komponentni dizayn vaqtida ishlatish uchun ochish, qayta qurish va o'rnatish kerak C:\Users\USER_NAME\Documents\Inventory 14\Plugins\Source\Delphi\Components\PlugItem\sgPlugin.dpk. Komponentni o'rnatgandan so'ng, palitrada Delphi komponentlari, TsgPluginItem komponenti Soft Gold yorlig'ida paydo bo'ladi, u dizayn vaqtida ishlatilishi mumkin, ya'ni. shaklga joylashtiring.

Ilgaklar WordPress tomonidan plaginingiz WordPress-ning qolgan qismiga “ulanish” imkonini beradi; ya'ni plaginingizdagi funksiyalarni ma'lum vaqtlarda chaqirish va shu bilan plaginingizni harakatga keltirish. Ikki turdagi kancalar mavjud:

  1. (Kodeks)
  2. (Kodeks)

Ba'zan bir xil maqsadga harakat yoki filtr yordamida erishishingiz mumkin. Misol uchun, agar siz plaginingiz post matnini oʻzgartirishini istasangiz, publish_post ga amal funksiyasini (post maʼlumotlar bazasiga saqlanganligi sababli oʻzgartiriladi) yoki the_content ga filtr funksiyasini qoʻshishingiz mumkin (post shunday boʻladi). brauzer ekranida ko'rsatilgandek o'zgartirildi).

WP-dagi barcha harakatlar va filtr ilgaklarining to'liq ro'yxati uchun Adam Braunning WordPress Hooks ma'lumotlar bazasiga qarang.

Funktsiyaga havola

Filtr funksiyalari
Amallar Funksiyalar
Funktsiyalarni faollashtirish/o'chirish/o'chirish

Harakatlar

Harakatlar WordPress-da ro'y beradigan, masalan, post nashr qilish, mavzularni o'zgartirish yoki . Harakat - bu plaginingizda (yoki mavzuingizda) belgilangan maxsus PHP funksiyasi va bog'langan, ya'ni. bu hodisalarning ba'zilariga javob berishga o'rnatiladi. Harakatlar odatda quyidagilardan birini yoki bir nechtasini bajaradi:

  • Ma'lumotlar bazasi ma'lumotlarini o'zgartirish.
  • Elektron pochta xabarini yuboring.
  • Yaratilgan boshqaruv ekranini yoki foydalanuvchi brauzeriga yuborilgan old sahifani o'zgartiring.

Buni amalga oshirish uchun asosiy qadamlar (quyida batafsil tavsiflangan):

  1. Plagin faylingizda ma'lum bir WordPress hodisasi sodir bo'lganda bajarilishi kerak bo'lgan PHP funksiyasini yarating.
  2. Funktsiyadan foydalanib, ushbu funktsiyani hodisaga ulang.
  3. PHP funksiyangizni plagin fayliga joylashtiring va uni faollashtiring.

Harakat funksiyasini yarating

Plaginingizda harakat yaratishning birinchi qadami plaginingizning amal funksiyasi bilan PHP funksiyasini yaratish va uni plagin faylingizga joylashtirishdir (plagin faylingiz wp-content/plugins katalog). Misol uchun, agar siz har safar yangi post yaratganingizda do'stlaringiz elektron pochta xabarini olishlarini istasangiz, quyidagi funktsiyani belgilashingiz mumkin:

Funktsiya email_friends($post_ID) ( $friends = " [elektron pochta himoyalangan],[elektron pochta himoyalangan]"; mail($friends, "sally" ning blogi yangilandi", "Men hozirgina blogimga biror narsa qo'ydim: http://blog.example.com"); $post_IDni qaytarish; )

Aksariyat harakatlar uchun funksiyangiz bitta parametrni qabul qilishi kerak (odatda post yoki sharh identifikatori, amalga qarab). Ba'zi harakatlar bir nechta parametrlarni oladi -- qo'shimcha ma'lumot olish uchun harakat hujjatlarini (agar mavjud bo'lsa) yoki WordPress manba kodini tekshiring. Bitta parametrdan tashqari, siz WordPress-ning boshqa funktsiyalariga (yoki plagin faylingizdagi funktsiyalarga) kirishingiz va qo'ng'iroq qilishingiz mumkin.

Funktsiya tomonidan chiqarilgan har qanday matn (masalan, chop etish bilan) amal chaqirilgan joyda sahifa manbasida paydo bo'ladi.

ESLATMA: Shuni yodda tutingki, boshqa plaginlar yoki WordPress yadrosi siz o'ylagan funksiya nomidan allaqachon foydalanayotgan bo'lishi mumkin. Qo'shimcha ma'lumot olish uchun keyingi bo'limga qarang.

Funktsiya nomlari to'qnashuvining oldini olish

Ehtimol, kimdir sizning plaginingiz bilan bir xil nomdagi funksiyaga ega plagin yaratgan bo'lishi mumkin.

Bu muammo, chunki PHP bir xil nomdagi bir nechta funksiyalarga ruxsat bermaydi. Agar ikkita plagin bir xil nomdagi funksiyani taqdim etsa yoki plagin WordPress funksiyasi bilan bir xil nomga ega funksiyani taqdim etsa, blog o‘z faoliyatini to‘xtatib qo‘yishi mumkin. Ushbu muammodan qochishning ikki yo'li mavjud.

Birinchi yechim - plaginingizdagi har bir funktsiyani noyob belgilar to'plami bilan oldindan belgilash. Agar ismingiz Jon Q. Public bo'lsa, siz o'z funksiyalaringizni jqp_output() (...) funktsiyasi sifatida e'lon qilishingiz mumkin. Bir xil bosh harflarga ega bo'lgan odam o'z plaginlari bilan bir xil ishni bajarishi mumkin, ammo past.

Ikkinchisi - va ehtimol osonroq - bu plagin funktsiyalaringizni sinfga qo'shish va sinf usullarini statik ravishda chaqirishdir. Bu avvalgidan ko'ra murakkabroq ko'rinadi.

Yuqorida keltirilgan misollarni kengaytiradigan ushbu sinfni ko'rib chiqing:

Class emailer ( statik funksiya send($post_ID) ( $friends = " [elektron pochta himoyalangan],[elektron pochta himoyalangan]"; mail($friends,"sally's blog updated","Men hozirgina blogimga biror narsa qo'ydim: http://blog.example.com"); $post_IDni qaytarish; ) ) add_action("publish_post", massiv("elektron pochta", "yuborish"));

Bu sinf chaqirildi elektron pochta usuli bor yuborish plagin funksiyasini amalga oshiradi.

Sinfdan tashqari add_action() funksiyasi WordPress-ga qo'ng'iroq qilishni buyuradigan amalni qo'shadi yuborish xabar chop etilganda usul. Ikkinchi parametrda foydalanilgan massiv plagin tizimiga "yuborish" nomli "emailler" sinfining statik usulini chaqirishni aytadi.

Funktsiya yuborish sinf deklaratsiyasi bilan global nomlar maydonidan himoyalangan. Send() ga to'g'ridan-to'g'ri qo'ng'iroq qilish mumkin emas va shuning uchun boshqa har qanday funktsiya nomlanadi yuborish bu bilan to'qnashmaydi. Agar siz send() ga qo'ng'iroq qilmoqchi bo'lsangiz, quyidagi kabi miqyosni aniqlash operatoridan foydalanishingiz kerak bo'ladi: emailer::send()

Yuqoridagi misol statik usullar uchun. Agar sizda sinfning namunasi bo'lsa, u ishlamaydi. Misol usulini chaqirish uchun senga kerak misolni o'zgaruvchi sifatida o'tkazish uchun. Buni hisobga olish uchun o'zgartirilgan yuqoridagi misolni ko'rib chiqing:

Class emailer (funksiya send($post_ID) ( $friends = " [elektron pochta himoyalangan],[elektron pochta himoyalangan]"; mail($friends,"sally's blog updated","Men hozirgina blogimga biror narsa qo'ydim: http://blog.example.com"); $post_IDni qaytarish; ) ) $myEmailClass = yangi email(); add_action("publish_post", massiv($myEmailClass, "yuborish"));

Sinflar murakkab mavzudir. Sinflar bo'yicha PHP hujjatlarida ular haqida ko'proq o'qing.

WordPress-ga ulanish

Funktsiyangiz aniqlangandan so'ng, keyingi qadam uni WordPress-da "ulash" yoki ro'yxatdan o'tkazishdir. Buning uchun plagin faylingizning global ijro maydoniga qo'ng'iroq qiling:

Add_action("kanca_nomi", "funksiyangiz_nomingiz", , );

Hook_name WordPress tomonidan taqdim etilgan harakat kancasining nomi, bu sizning funksiyangiz qaysi hodisa bilan bog'lanishi kerakligini aytadi. your_function_name hook_name tomonidan belgilangan hodisadan keyin bajarilishi kerak bo'lgan funksiyaning nomi. Bu standart PHP funksiyasi, WordPress yadrosida mavjud funksiya yoki plagin faylida siz belgilagan funksiya (masalan, yuqorida tavsiflangan “email_friends”) boʻlishi mumkin. ustuvorlik Muayyan harakat bilan bog'liq funksiyalarning bajarilishi tartibini belgilash uchun foydalaniladigan ixtiyoriy butun son argumenti (standart: 10). Oldinroq bajarilgan pastki mos keladigan raqamlar va bir xil ustuvorlikka ega funktsiyalar amalga qo'shilgan tartibda bajariladi. accepted_args Funksiyangiz qancha argumentni qabul qilishi mumkinligini aniqlovchi ixtiyoriy butun son argumenti (standart 1), foydali, chunki baʼzi ilgaklar funksiyangizga bir nechta argumentlarni oʻtkazishi mumkin. Ushbu parametr 1.5.1 versiyasida yangi.

Yuqoridagi misolda biz plagin fayliga quyidagi qatorni joylashtiramiz:

Add_action("publish_post", "email_friends");

O'rnatish va faollashtirish

Filtr kancasini ishga tushirishning oxirgi bosqichi faylni o'rnatish va plaginni faollashtirishdir. Siz yozgan PHP funksiyasi va qo'ng'iroq birgalikda PHP fayliga kirishi va PHP fayli faylga o'rnatilgan bo'lishi kerak. wp-content/plugins katalog. U o'rnatilgandan so'ng WordPress-ning administrator bo'limiga tashrif buyurib, plaginingizni faollashtirishingiz kerak bo'ladi; batafsil ma'lumot uchun qarang.

Filtrlar uchun joriy ilgaklar

Faollashtirish/O'chirish/O'chirish

Agar plaginingizda faqat faollashtirish yoki o'chirish vaqtida bajarilishi kerak bo'lgan vazifalar bo'lsa, u va Action Reference-dan foydalanishi mumkin - WordPress-ning harakat ilgaklari ro'yxati

Tashqi manbalar

  • Adam Braunning WordPress ilgaklar ma'lumotlar bazasi, barcha WordPress ilgaklarining ma'lumotlar bazasi, ular qaysi versiyadan kelganligini ko'rsatadi va ulardan foydalanadigan manba kod nuqtalariga bog'laydi. Bu eng to'liq.
  • Otto WordPress-da:

Yandex tomonidan.
Bu veb-xizmat, shuning uchun uni qo'shishingiz shart emas.

Ushbu plaginni yoqish uchun server egalariga maxsus kalit kerak.
Yandex veb-saytiga kiring va keyin ushbu kalitni oling, so'ng uni API konfiguratsiyasiga qo'ying.
Esda tutingki, bepul kalit har oyda "faqat" 10 000 000 ta belgini qo'llab-quvvatlaydi, lekin siz qancha kalit yaratishingiz mumkin.

Bu mavjud tillar:

SpoilerTarget">Spoiler

Ozarbayjon
ALBANIYA
INGLIZ TILI
ARAB
AFRIKALAR
BASK
BELARUS
BOLGAR
BOSNIYA
UELSH
VENGAR
VYETNAM
GAITIAN
GALISIYA
GOLLANDIYA
yunon
GURJUZ
DANIYA
INDONESIYA
IRISH
ITALYA
ISLANDIYA
ISPAN
KANNADA
Xitoy
KOREYA
LOTIN
LITVA
MAKEDON
MO'G'UL
NEMAN
NEPALI
NORVEGIYA
FORS
Polsha
PORTUGAL
RUMIN
RUS
SERB
SLOVAK
SLOVEN
SUNDAN
TURK
UZBEK
UKRAINA
FINLANDIYA
FRANSIZ
HINDI
XORVAT
CHEX
ShVED
SHOTLANDIYA
ESTON
YAPON

Serverga qo'shilganingizda, sizning tilingiz server tilidir.
Uni o'zgartirish uchun shunchaki yozing /lang(ruxsat: translator.lang) va menyudan tilingizni tanlang.

Agar bog'liqlikni qanday qo'shishni bilmasangiz, bu erda o'qing.

Dasturchi
Java >= 8 dan foydalanayotganingizga ishonch hosil qiling.
Qurilish yo'lingizga JAR qo'shing. Keyin "Manual Manifest" sozlamasini o'rnating va loyihaga MANIFEST.MF ni yarating. Yozing:

Asosiy-sinf: your.package.Class
Class-Path: ..\lib\Translator.jar

Server egalari
Java >= 8 dan foydalanayotganingizga ishonch hosil qiling.
nomli jild yarating lib asosiy server ildiziga va bu yerga JAR-ni qo'ying.
Bundan tashqari, siz uni plaginlar jildiga qo'yishingiz kerak.

//O'yinchi tiliga avtomatik tarjima qilingan xabarni yuborish
p.sendMessage("§a" + Translator.translate("Salom!", p));

//Qo'lda tarjima qilingan xabarni yuborish
p.sendMessage("§a" + Translator.translate("Salom!", Language.ENGLISH, Language.ITALIAN));

//Server tilini olish
Til serverLang = Translator.getServerLanguge();

//O'yinchi tilini olish
Language playerLang = Translator.getPlayerLanguage(p);

  • Agar siz APIni ishlatadigan plagin yoqilgan vaqtda qayta yuklasangiz, u ishlamay qoladi. Qo'lda tuzatish uchun plaginni o'chiring, APIni qayta yuklang va plaginni yuklang
  • Rang kodlari qo'llab-quvvatlanmaydi. Ulardan foydalanish uchun yuqoridagi misollarga qarang
  • Kichik kechikish (API asl matnni tarjima qilishi va JSON qabul qilishi kerak)

Agar sizda biron bir muammo bo'lsa, muhokamada post yozing yoki shaxsiy xabarlar orqali men bilan bog'laning. Sharhlar bo'limidagi xato hisobotlariga javob bermayman.

Hozirda ushbu API ishlatadigan plaginlar yo'q. Agar siz undan foydalanayotgan bo'lsangiz, menga ayting va men uni bu erga qo'shaman

Oxirgi sharhlar

  1. Versiya: 1.0

    Katta birodar! Gamehosting tomonidan quvvatlanadi, italyancha nima qilish kerak? 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: Mumkin emas trovare il percorso specificato
    : java.io.WinNTFileSystem.createFileExclusively manzilida (Native Method)
    : java.io.File.createNewFile manzilida (noma'lum manba)
    : eu.iamgio.translator.UsersFileLoader.loadRegisterFile manzilida(UsersFileLoader.java:21)
    : eu.iamgio.translator.Translator.onEnable manzilida(Translator.java:35)
    : org.bukkit.plugin.java.JavaPlugin.setEnabled manzilida(JavaPlugin.java:321)
    : org.bukkit.plugin.java.JavaPluginLoader.enablePlugin manzilida(JavaPluginLoader.java:340)
    : org.bukkit.plugin.SimplePluginManager.enablePlugin manzilida (SimplePluginManager.java:405)
    : org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugin manzilida(CraftServer.java:357)
    : org.bukkit.craftbukkit.v1_8_R3.CraftServer.enablePlugins manzilida(CraftServer.java:317)
    : net.minecraft.server.v1_8_R3.MinecraftServer.s manzilida(MinecraftServer.java:414)
    : net.minecraft.server.v1_8_R3.MinecraftServer.k manzilida(MinecraftServer.java:378)
    : net.minecraft.server.v1_8_R3.MinecraftServer.a manzilida(MinecraftServer.java:333)
    : net.minecraft.server.v1_8_R3.DedicatedServer.init manzilida (DedicatedServer.java:263)
    : net.minecraft.server.v1_8_R3.MinecraftServer.run saytida(MinecraftServer.java:525)
    : java.lang.Thread.run manzilida (noma'lum manba)

2015-yil oxirida chiqarilgan. Biroq, umuman olganda, faqat ilg'or ishlab chiquvchilar bu taklif qanchalik kuchli ekanligini bilish uchun vaqt ajratdilar.

WordPress REST API toʻplami barcha zamonaviy yangilanishlarni birlashtirib, mavzular, mobil ilovalar va boshqalarga birlashtirilishi mumkin boʻlgan oʻrnatilgan API bilan taʼminlaydi. Boshqacha qilib aytadigan bo'lsak, bu ishlab chiquvchilarga har qanday ilovaning WordPress bilan o'zaro aloqada bo'lishiga imkon beruvchi oldingi interfeysni ma'lumotlarni boshqarishdan ajratish imkonini beradi. Ushbu vosita qanday ishlashini o'rganish WordPress saytingizni kengaytirish uchun deyarli cheksiz imkoniyatlar eshigini ochishi mumkin.

Ushbu maqolada biz sizni WordPress REST API loyihasi bilan tanishtiramiz, nima uchun bu juda yaxshi ekanligini tushuntiramiz va undan foydalanish bo'yicha ba'zi g'oyalarni taklif qilamiz. Shunday ekan, keling, vaqtni behuda sarf qilmay, boshlaylik!

WordPress REST API bilan tanishtirish

WordPress REST API loyihasi (REST from Representational State Transfer) WordPress toʻliq huquqli dastur platformasi boʻlish yoʻlida qadam tashlayotganini tasdiqlaydi. Uning mavjudligi jozibali, chunki u WordPress yadrosiga standart REST API qo'shadi.

Loyiha birinchi marta 2013 yilda dasturchilar Rayan MakKyu va Reychel Beyker tomonidan ishlab chiquvchilar uchun GitHub’ga yuklangan. Mustaqil REST API plagini 2015-yil dekabr oyida katta qoʻllab-quvvatlangan va uning imkoniyatlarini yaxshilash ustida ishlashga tayyor boʻlgan 100 ga yaqin ishtirokchilarni jalb qilganidan soʻng WordPress yadrosiga oʻrnatilgan.

WordPress REST API yadro qismiga aylanganidan beri u o'zining samaradorligini isbotladi. Sizning loyihalaringizda qo'llash va ilhom ravshanligi uchun bir nechta haqiqiy misollar:

  1. Event Espresso ishlab chiquvchilarga o'zlarining global infratuzilmalariga kirishni ta'minlash uchun REST API'dan foydalanadi va ularga o'z xizmatlaridan foydalangan holda ilovalarni ishlab chiqish imkonini beradi.
  2. Simmer ishlab chiquvchilarga o'zlarining funktsional imkoniyatlarini to'liq huquqli qilib kengaytirish uchun API-ga kirish imkonini beradi mobil ilova yoki mavzularni sozlash.
  3. JoinIn o'zining "qo'shiladigan" vidjetini REST API yordamida taqdim etadi va uni qayerda ko'rsatilmasin, tegishli ma'lumotlar bilan to'ldiradi.

REST API-larining innovatsion maqsadlari haqida gap ketganda, bu aysbergning faqat uchi. Biroq, keling, REST API qanday ishlashini muhokama qilaylik.

WordPress REST API qanday ishlaydi

Muxtasar qilib aytganda, REST API ma'lumotlar bazasiga yoki foydalanuvchi interfeysiga to'g'ridan-to'g'ri kirmasdan, matn ma'lumotlarini bir joydan ikkinchisiga manipulyatsiya qilish orqali ishlaydi. API larning ko'p turlari mavjud (Ilova dasturlash interfeyslari), shunga qaramay, REST zamonaviy va tegishli standart bo'lib qolmoqda.

REST API Hyper Text Transfer Protocol (HTTP) kirish nuqtalari orqali JavaScript Object Notation (JSON) formati yordamida uzatiladi. Oddiy qilib aytganda, ushbu texnologiyalar JavaScript ob'ektlari kabi harakat qiladigan ma'lumotlarni etkazib berish uchun noyob veb-manzillar yordamida API-larga kirishni ta'minlaydi.

Agar siz hech qachon JavaScript yoki uning obyekt taʼriflari bilan ishlamagan boʻlsangiz, JSON asoslarini oʻrganing. Endi biz REST API kontseptsiyasini biroz ochib berdik, keling, uning WordPress yordamida ishlab chiqish jarayoniga qanday katta ta'sir ko'rsatishi haqida gapiraylik.

WordPress REST API ishlab chiquvchilar uchun nimani anglatadi?

WordPress REST API veb-serverdagi yoki sizning istalgan dastur bilan har qanday WordPress o'rnatilishining universal integratoridir operatsion tizim. Oxir-oqibat, bu qurilish mumkin bo'lgan yagona chegara ekanligini anglatadi WordPress yordamida, faqat bizning tasavvurimiz. Siz istalgan platformada yoki tilda yozilgan har qanday dasturni yaratishingiz va REST API orqali maʼlumotlarni qayta ishlash uchun WordPress-dan foydalanishingiz mumkin. Ochiq va do'stona WordPress hamjamiyati ulkan imkoniyatlarni taqdim etadi.

REST API JavaScript-ga asoslangan bo'lib, qaysi dasturlash tillarini bilish muhimligini ko'rsatadigan tobora ortib borayotgan e'tiborni tortmoqda. Tez orada server tomonidagi JavaScript yangi PHP ekanligini bilib olasiz. Buni WordPress.com ning to'liq JavaScript va REST API-da ishlaydigan yangi Calypso dasturida ko'rish mumkin.

Ilovalar (shu jumladan WordPress yadrosi) WordPress ma'lumotlari bilan o'zaro ta'sir qilish usulini standartlashtirish orqali WordPressni ishlab chiqish osonroq va intuitiv bo'ladi. Bundan tashqari, u uchinchi tomon platformalari bilan integratsiyani osonlashtiradi.

Umid qilamanki, sizda endi ushbu texnologiyadan qanday foydalanishni o'rganishni boshlash muhimligi haqida ko'proq sabablar bor. REST API-dan o'z ishingizda foydalanishga birinchi qadamlaringizni qo'yish vaqti keldi!

WordPress REST API bilan ishlashni boshlash uchun 5 qadam

Yuqorida aytib o'tganimizdek, REST API HTTP resurslarini chaqira oladigan har qanday dastur yoki dasturlash tili bilan ishlatilishi mumkin. Biz REST API soʻrovlarini bajarish uchun buyruq qatoridan foydalanishga eʼtibor qaratamiz, chunki bu eng oddiy usul boʻlib, oʻquv jarayoniga putur yetkazishi mumkin boʻlgan xatolarni kiritish ehtimoli kam.

Buning uchun kompyuteringizda buyruq qatori interfeysi (Command Line Interface CLI) bo'lgan dasturni ochishingiz kerak - Terminal macOS yoki Linuxda va buyruq qatori Windows-da. CLI ma'lumotni so'rash va qayta ishlash uchun qo'shimcha skriptlarni yozishga hojat qoldirmasdan, REST API bilan to'g'ridan-to'g'ri ishlash imkonini beradi. CLI-da yozgan har qanday so'rov PHP, JavaScript yoki boshqa tildagi skript bo'lishi mumkin, ammo usul har biri uchun boshqacha bo'ladi. CLIda buyruqlarni bevosita bajarish. Faqat kerakli buyruqni kiriting va Enter tugmasini bosing.

Shuningdek, biz ushbu qadamlarni jonli saytda sinab ko'rishdan ko'ra, demo saytni o'rnatishni yoki mahalliy sinovdan o'tishni tavsiya qilamiz. Va nihoyat, yana bir shart - saytingizning WordPress versiyasi 4.4 yoki undan yuqori. Agar tayyor bo'lsangiz, keling, boshlaylik!

1-qadam: REST API ning asosiy tushunchalari bilan tanishing

Boshlashdan oldin, keling, REST API ning asosiy tushunchalari bilan tanishib chiqamiz. Siz tanishishingiz kerak bo'lgan faqat beshta asosiy tushuncha va atamalar mavjud. Keling, ularni ko'rib chiqaylik:

  1. Marshrutlar ("Marshrutlar") va Resurslar yoki kirish nuqtalari ("So'nggi nuqtalar"). Bu REST API-ni tushunishning eng muhim jihati. Marshrutlar ma'lum bir HTTP usuli (masalan, statik ma'lumotlar to'plami yoki harakat) ma'lum bir marshrutga ulanganda resurslaringiz orasida harakatlanishingizga yordam beradi. Masalan, /wp-json/ - bu bizga mavjud marshrutlarni ko'rsatish uchun yaratilgan resurs sifatida tuzilgan marshrut.
  2. So'rovlar. Ular to'g'ri resurslarni ishga tushirish va ma'lumotlardan o'tish orqali yaratiladi.
  3. javob ( Javoblar). Muxtasar qilib aytganda, siz so'ragan ma'lumotlarni taqdim etish yoki biror narsa noto'g'ri ketganligini bildirish uchun xatoni qaytarish.
  4. Sxemalar. Quyida javoblar shablonlari keltirilgan, shuning uchun siz har doim kerakli ma'lumotlarni qaerdan qidirishni aniq bilasiz.
  5. Nazoratchi sinflari. Ular sizga o'z marshrutlaringizni va resurslaringizni yaratishga imkon beradi. Agar bu haqda tashvishlanishingiz shart emas ekan, ular keyinchalik foydali bo'ladi.

Ushbu besh tushunchani tushunganingizdan so'ng, kirish nuqtalaridan boshlab, REST API-ning o'ziga chuqurroq kirishni boshlashingiz mumkin.

2-qadam: Eng foydali REST API kirish nuqtalarini toping

WordPress REST API siz uchun eng foydali bo'lganlarini topishingiz mumkin bo'lgan barcha kirish nuqtalari (resurslar) bilan mos yozuvlar qo'llanmasini taqdim etadi. Avvalo, HTTP REST API chaqiruvini qanday yaratishni bilishingiz kerak. Har qanday WordPress API chaqiruvining asosiy qismi shunday ko'rinadi, almashtiring yourdomain.com siznikiga:

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

O'zingizning URL manzilingizdan foydalanib CLI-da curl buyrug'ini ishga tushirish orqali ulanishni sinab ko'rishingiz mumkin:

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

Sizni xabar bilan kutib olish kerak HTTP. Ba'zi asosiy manbalardan foydalanib, ushbu buyruqni qo'shimcha o'zgartirishingiz mumkin. Endi biz curlning GET versiyasidan foydalanamiz.

WordPress-dagi postlaringizning JSON ro'yxatini olish uchun siz quyidagilardan foydalanishingiz mumkin:

Shundan so'ng, barcha mavjud WordPress sahifalarini tekshirish uchun quyidagilarni sinab ko'ring:

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

Har biri qanday javob berishini ko'rish uchun CLI-da ushbu kirish nuqtalarining har biri (va yana ko'p!) bilan tajriba o'tkazishingiz mumkin.

3-qadam: REST API autentifikatsiya asoslarini bilib oling

Endi autentifikatsiyani o'rganish vaqti keldi. REST API-dagi ba'zi harakatlar va ma'lumotlar ommaviydir, boshqalari esa administrator sifatida tizimga kirishingiz kerak. Biroq, bu REST API va avtorizatsiya uchun tizimga kirish uchun joy yo'q. Buning o'rniga, nashr etilmagan xabarlarni ko'rish yoki postlarni o'zgartirish kabi administrator ruxsatini talab qiladigan so'rovlar paytida autentifikatsiya qilishingiz mumkin.

Keling, WordPress REST API Basic Auth plaginini o'rnatishdan boshlaylik. Bu ishlab chiquvchilar uchun REST API-ni tezda o'rganish uchun oddiy plagin bo'lib, haqiqiy veb-saytlar uchun mo'ljallanmagan. Biroq, o'rnatish jarayoni boshqa plaginlar bilan bir xil.

Basic Auth o'rnatilgandan so'ng siz bayroq bilan CLI orqali autentifikatsiya qilishingiz mumkin bo'ladi foydalanuvchi. Bu erda foydalanuvchi autentifikatsiya usulini qo'llash misoli keltirilgan jingalak e'lon qilinmagan xabarlarni ko'rish uchun:

Curl -X GET --user username:password -i http://yourdomain.com/wp-json/wp/v2/posts?status=draft

Umumiy ma'lumotni ko'rishdan tashqari har qanday operatsiya uchun autentifikatsiya talab qilinadi. Asosiy autentifikatsiyani o'rganganingizdan so'ng, REST API hujjatlari tomonidan ishlab chiqishingiz uchun tavsiya etilgan boshqa variantlarni o'rganishingiz mumkin.

4-qadam: REST API yordamida birinchi WordPress postingizni tanlang

Curl yordamida asosiy REST API qo'ng'iroqlarini qanday qilishni tushunganingizdan so'ng, ma'lum bir yozuvni tanlab ko'ring. Birinchidan, avval qilganimizdek, barcha nashrlarni ko'rsatamiz:

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

Siz post, sahifa yoki taksonomiyani ko'rsatishni xohlaysizmi, har qanday REST API resursi uchun ushbu ID ilovasidan foydalanishingiz mumkin.

5-qadam: REST API orqali WordPress postingizga o'zgartirishlar kiritish

Nihoyat, siz tanlagan nashrga o'zgartirish kiritishga harakat qilaylik. Buyruqlar o'rniga OPTION yoki OLISH, bu safar biz foydalanamiz POST o'zgartirishlar kiritish. OLISH esa ma'lumotlarni o'qish uchun ishlatiladi POST- ularni yuborish.

So‘rov yuborish orqali postingiz nomini o‘zgartiraylik POST autentifikatsiya ma'lumotlari bilan birga. Yangi o'zgarishlar bayroq yordamida amalga oshiriladi d buyruq oxirida. Biz foydalanuvchini uzatamiz JavaScript obyekti kabi sarlavha o'zgaruvchisini o'z qiymatiga o'rnatish orqali Mening yangi sarlavham quyidagi kodda ko'rsatilganidek:

Curl -X POST --user username:parol http://yourdomain.com/wp-json/wp/v2/posts/ -d "("title":"Mening yangi sarlavham")"

Foydalanuvchi nomi, parol, post identifikatori va sarlavhani o'zingizga almashtirganingizga ishonch hosil qiling. O'zgarishlarni tekshirish uchun berilgan nashrni yana tanlashingiz mumkin:

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

Tabriklaymiz! Siz hozirgina WordPress REST API yordamida birinchi administrator tahrirlarini qildingiz. Albatta, ushbu asosiy qo'llanma faqat REST API tomonidan taqdim etilgan imkoniyatlarning sirtini chizadi, ammo bu juda yaxshi boshlanishdir!

Xulosa

WordPress REST API - bu WordPress yadrosining kuchli yangi versiyasi va ko'plab ishlab chiquvchilar allaqachon uning imkoniyatlaridan foydalanishni boshlagan. Shunga ko'ra, endi qanday ishlash kerakligi bilan tanishib chiqdik yangi imkoniyat, siz dasturlash mahoratingizni oshirasiz va WordPress-ni ramka sifatida ishlatib, dastur yaratishingiz mumkin.

Xulosa qilib aytadigan bo'lsak, biz WordPress REST API bilan qanday ishlashni o'rganish yo'lida besh bosqichdan o'tdik:

  1. Asosiy REST API tushunchalari bilan tanishish.
  2. Eng foydali manbalar/REST API kirish nuqtalari.
  3. REST API autentifikatsiyasi asoslarini bilib oling.
  4. REST API yordamida WordPress-da post olish.
  5. REST API yordamida WordPress postini o'zgartiring.

WordPress REST API haqida qanday savollaringiz bor? Izohlarda bizga yozing!