Akanyora API - yakabvarura XML (mbiri)

Yekutanga MySklad API yakaonekwa makore gumi apfuura. Nguva yese iyi tanga tichishanda pashanduro dziripo dzeAPI nekugadzira itsva. Uye akati wandei mavhezheni eAPI akatovigwa.

Ichi chinyorwa chichava nezvinhu zvakawanda: kuti API yakagadzirwa sei, nei sevhisi yegore ichiida, zvainopa kuvashandisi, ndezvipi zvikanganiso zvatakakwanisa kutsika uye zvatinoda kuita zvinotevera.

Ini ndinonzi Oleg Alekseev oalexeev, Ini ndiri technical director uye co-muvambi weMySklad.

Sei kugadzira API yebasa

Vatengi vedu, vanova makumi ezviuru zvemabhizinesi, vanoshingairira kushandisa makore mhinduro: kubhengi, online zvitoro, commodity accounting, CRM. Kana ukangobatanidza kune imwe, zvakaoma kumira. Uye ikozvino yechishanu, yechisere, yegumi sevhisi inoita kuti basa remuzvinabhizimusi rive nyore, asi vashandisi vanotamisa data pakati peaya masevhisi emakore. Basa rinoshanduka rikava dzungu.

Mhinduro iri pachena ndeyekupa vashandisi kugona kuendesa data pakati pemakore masevhisi. Semuenzaniso, pinza uye kutumira kunze data semafaira, ayo anogona kubva aiswa kune yaunoda sevhisi. Mafaira anowanzo kuchinjwa kuti aenderane nefomati yesevhisi yega yega. Iri rinowedzera kana kushoma basa remanyorero, asi nekuwedzera kwenhamba yemasevhisi aya, zvinova zvakanyanya kuoma kuita.

Naizvozvo, nhanho inotevera ndeye API. Nayo, gore sevhisi inobatsira kubva pakuti inobatanidza akati wandei masevhisi pane imwe nguva. Kubuda kweiyo ecosystem inokwezva vatengi vatsva nekuda kwemikana yekuwedzera. Chigadzirwa chine hutsva hwekushanda chinova chinobatsira uye chinobatsira.

Kana iwe ukagadzira yako wega programming interfaces, izvi zvinokwezva vechitatu-bato rekutengesa vanhu muchimiro chevagadziri vanoziva nezvechigadzirwa chako nekuda kweAPI. Vanotanga kuvaka zvigadziriso zvichibva pane yakarongwa API uye kuita mari nekuita otomatiki mabasa evatengi vavo.

Iyo MySklad accounting system yakavakirwa pamaitiro akareruka. Chinhu chikuru ndechekushanda nemagwaro ekutanga, kugona kugamuchira uye kutumira zvinhu, uye kugamuchira mishumo yebhizinesi yakavakirwa pamagwaro ekutanga. Kune zvakare kuendeswa kwedata, semuenzaniso kune cloud accounting, uye risiti yayo kubva kumabhangi masisitimu kana zvitoro zvekutengesa. Isu tinoshandawo nezvitoro zvepamhepo: tinogashira ruzivo nezve zvigadzirwa uye tinotumira ruzivo nezve masaramusi.

Akanyora API - yakabvarura XML (mbiri)

Yekutanga API yeMySklad

Kwemakore gumi eMySklad ichishanda neAPI, takawana marudzi ese ekubatanidza anotitendera kuchinjanisa data, kushanda nemabhangi, kubhadhara uye kushandisa runhare rwekunze.

Mugore rekutanga, takaita kuti zvikwanise kurodha chero data muXML fomati. Kare ikako, zvaive zvakajeka uye zvakajairika kuti vashandisi vachengete data pasina Indaneti, kwete mune rimwe gore, uye takavapa. Iko kurodha kwakatangwa nekutumirwa kwemaoko kubva kune interface. Ndiko kuti, haisati yakwanisa kunzi API.

Panguva imwecheteyo, takatanga kushandira pamwe nekambani yeRusagro - vanga vachitoshandisa "vakuru" ERP yekugadzira uye kuronga kwekutengesa, asi ivo vakazviitira kurodha mota kumafekitori muMySklad. Iyi ndiyo nzira yatakawana nayo yekutanga rudiments ye API chaiyo: kuchinjana pakati pebasa redu neERP kwakaitika nekutumira faira huru ine data pamhando dzose dzemagwaro.

Iyi isarudzo yakanaka yekuchinjana data batch, asi pamwe chete nemagwaro taifanira kutamisa kutsamira kwavo: ruzivo nezvezvinhu, makondirakiti uye matura. Kurasa kwakadaro hakuna kuoma kugadzira kana uchitumira kunze, asi zvakaoma kutsanangura kana uchinge wapinza, sezvo ruzivo rwese rwunouya mupakeji imwe: zvese nezvemagwaro matsva uye nezve aripo.

Yekutanga XML API haina kurarama kwenguva refu - makore maviri gare gare takatanga kuivaka patsva. Kunyangwe pakutanga kwebasa rayo, takaita zvikanganiso zvakawanda pakuvaka iyo software interface.

Akanyora API - yakabvarura XML (mbiri)
Iyo XML API yakagadzirwa sei: mufananidzo kubva kune mumwe wevagadziri vedu. Nenzira, ramba wakatarisa zvinyorwa zvake.

Hezvino izvo zvatinokanganisa zvikuru:

  1. JAXB markup yakaitwa yakananga pabhinzi bhinzi. Isu tinoshandisa Hibernate kutaurirana nedatabase, uye JAXB markup yakagadzirirwa bhinzi imwechete. Kukanganisa uku kwakaoneka nekukasira: chero gadziriso kune iyo data data yakatungamira kudikanwa kwekukurumidza kuzivisa munhu wese anoshandisa iyo API, kana kugadzira madondoro anovimbisa kuenderana neyakapfuura data chimiro.
  2. Iyo API yakakura seyekuwedzera, uye isu hatina kutanga tatsanangura kuti chaive chikamu chipi chechigadzirwa. Ivo havana kana kumbofunga nezve iyo API yaive chinhu chakakosha, kunyangwe zvaive zvakafanira kuchengetedza kumashure kuenderana kwevatengi vayo vekutanga. Pane imwe nguva, nhamba yevashandisi veAPI yaive ye5% yenhamba diki, uye hapana kutariswa kwakabhadharwa kwavari. Kusefa kwepasirese kwakaitwa pane imwe nguva kwakaita kuti isu tishandiswe sechinhu chekudzosera kumashure. Uku kusefa kwanga kusiri GraphQL zvachose, asi chimwe chinhu chakadaro - chakashanda kuburikidza neakawanda emubvunzo tambo paramita. Nechombo chine simba chakadaro, zvaive zvakaoma kuti vashandisi varambe, uye zvikumbiro zvakaendeswa kwatiri kuti zvitumirwe zvakananga kubva kuUI yezvitoro zvavo zvepamhepo. Mamiriro acho aive chishamiso chisingafadzi, nekuti kupihwa kwesevhisi yakadai kunofanirwa kudiwa mitengo yakasiyana uye kunzwisiswa kwakasiyana kweiyo API pachayo sechigadzirwa.
  3. Nekuda kwekuti API haina kugadzirwa sechigadzirwa chikuru, zvinyorwa zveAPI zvakagadzirwa uye zvakaburitswa pane zvakasara - kuburikidza nereverse engineering. Iyi nzira inoita seyakapusa uye iri nyore, asi inopesana nekushanda pasi pechibvumirano. Apa ndipo kana paine chimwe chikamu chine preset yekushandisa chirongwa. Mugadziri anoishandisa zvinoenderana nechirongwa ichi uye basa, chikamu chinoedzwa, uye mutengi anogamuchira chigadzirwa chinoenderana nepfungwa yemuongorori. Reverse engineering inokanda pamusika chigadzirwa chinongovepo: nemadondoro, zvigadziriso zvisinganzwisisike nemabhasikoro pachinzvimbo chekushanda kunodiwa.
  4. Rukova rwese rwezvikumbiro rwakauya kuburikidza neAPI runogona kuongororwa sechinhu chinopfuura Nginx kana application server log. Izvi hazvina kutibvumira kuziva nzvimbo dzezvidzidzo, kunze kwekunge zvichida nevashandisi nevanonyoresa. Kana pasina nzira yekudzora kunyorera kana kunyoreswa kwevatengi, zvinove zvisingaite kuongorora mamiriro acho. Iri dambudziko rakave nekushomeka mukusimudzira kweAPI; iri pamusoro pekunzwisisa kukosha kwayo uye kushanda kwayo.

Kuedza nhamba yechipiri: REST API

Muna 2010, takaedza kuvaka hurongwa hwekutsinhana neinternet accounting - BukhSoft. Haana kusimuka. Asi panguva yekubatanidza, API yakazara-yakazara yakaonekwa: a REST exchange service, pakanga pasina rusununguko rwakadai sekuwana mashandiro nenzira yeRPC mafoni. Kukurukurirana kwese neAPI kwakaunzwa kune yakajairwa modhi yekuzorora: mutsara wekubvunza une zita rechikamu, uye oparesheni inoitwa nayo inotsanangurwa uchishandisa iyo http nzira. Isu takawedzera kusefa zvichienderana nekuti masangano akagadziridzwa riini, uye vashandisi vava nemukana wekuvaka kudzokorora nemasisitimu avo.

Mugore rimwe chetero, API yekuburutsa imba yekuchengetera zvinhu uye zviyero zveyekutanga zvakaonekwa. Izvo zvakakosha zvikamu zvehurongwa zvave kuwanikwa kune vashandisi kuburikidza neAPI - kuchinjana kwemagwaro ekutanga uye data yakaverengerwa pamayero uye mutengo wezvinhu.

Muna Zvita 2015, RetailCRM yakaburitsa raibhurari yekutanga yechitatu-bato kuwana yedu API. Yakatanga kushandiswa zvakanyanya, uku kufarirwa kwesevhisi kwakawedzera, mutoro paAPI wakakura nekukurumidza kupfuura mutoro pawebhu interface. Rimwe zuva kukura kwakashanduka kuita kutakura mutoro.

Akanyora API - yakabvarura XML (mbiri)

Akanyora API - yakabvarura XML (mbiri)

Uye kusvetuka uku, kunoratidzwa nemuseve kuruboshwe, kwakashamisa zvachose sevha inoshandira API yedu. Takaita svondo rese tichiona kuti chii chaizvo chaiburitsa mutoro uyu. Zvakazoitika kuti izvi ndizvo zvikumbiro zvakafanana zvinopfuudzwa kune yedu API kubva kune vatengi kumberi. Vanenge 50 vatengi vakadya zvose. Ipapo ndipo patakaona imwe yezvikanganiso zvedu - kushaikwa zvachose kwemiganhu.

Nekuda kweizvozvo, takaunza muganhu pahuwandu hwekukumbira panguva imwe chete. Izvozvi zvinogoneka kuvhura zvisingapfuure zvikumbiro zviviri panguva imwe chete kubva kune imwe account. Izvi zvakakwana kushanda mukudzokorora modhi yekutsinhana kwedata mubatch mode. Uye avo vaida kutishandisa se backend, kubva panguva iyoyo zvichienda mberi, vakamanikidzwa kutevedzera zvirinani nemitero, sezvo ivo vakaunza basa pamaakaundi akati wandei musoftware yavo.

Ngatiiise muhurongwa

Nechekare kubvira 2014, kudiwa kweiyo API iripo yave chikamu chakakosha chebhizinesi, uye iyo API pachayo inogadzira yakakura vhoriyamu yedata mukutsinhana kwedata nevatengi. Muna 2015, takatanga chirongwa chekuchenesa API. Isu takasarudza JSON panzvimbo yeXML sechimiro uye takatanga kuivaka zvichibva pane zvakaonekwa panguva yekuitwa kweshanduro yapfuura:

  1. Kugona kubata shanduro. Kushandura kunobvumira iwe kugadzira vhezheni itsva usingakanganise iyo iripo application kana kukanganisa ruzivo rwemushandisi.
  2. Iko kugona kwemushandisi kuona metadata mumhinduro pachayo yaanogamuchira.
  3. Kugona kuchinjanisa magwaro makuru. Kana isu tikaita gwaro rine anopfuura 4-5 zviuru zvinzvimbo, izvi zvinova dambudziko kune server: kutengeserana kwenguva refu, kureba http chikumbiro. Isu takavaka yakasarudzika mashini inobvumidza iwe kugadzirisa gwaro muzvikamu uye kugadzirisa ega zvinzvimbo zvegwaro iri nekuvatumira kune server.
  4. Zvishandiso zvekudzokorora zvaivepowo mushanduro yapfuura.
  5. Miganho yekutakura yakafanana nenhaka yereki yakatsikwa mushanduro yapfuura. Isu takaunza miganhu pahuwandu hwezvikumbiro munguva yenguva, nhamba yezvikumbiro zvakafanana uye zvikumbiro kubva kune imwe IP kero.

Kubva ipapo, takaburitsa maviri madiki mavhezheni eAPI uye takatangisa akati wandei maAPI, asi maitiro ese aramba asina kuchinjika. Iyo yakagadziridzwa yekutsinhana fomati uye dhizaini nyowani yakaita kuti zvikwanise kugadzirisa zvikanganiso muAPI nekukurumidza.

MySklad API nhasi

Nhasi, iyo MySklad API inogadzirisa matambudziko mazhinji:

  • kuchinjanisa data nezvitoro zvepamhepo, accounting system, mabhangi;
  • kuwana data yakaverengerwa nemishumo;
  • shandisa seyekumashure kune mashandisirwo emutengi - yedu mbozha nhare uye desktop rerejista mari basa kuburikidza neAPI
  • kutumira zviziviso nezve shanduko yedata muMySklad - webhooks;
  • telephony;
  • maitiro ekuvimbika.

Kubva pane API, CEO wedu Askar Rakhimberdiev rhino mumaawa mana ndakanyora teregiramu bot inodhonza zvakasara kuburikidza neAPI: github.com/arahimberdiev/com-lognex-telegram-moysklad-stock

Zvino omesa nhamba.

Hedzino nhamba dzedu dzekare REST API:

  • 400 makambani;
  • 600 vashandisi;
  • 2 mamiriyoni ekukumbira pazuva;
  • 200 GB / zuva rekubuda traffic.

Uye izvi ndizvo zvatakauya nazvo kune ese MySklad APIs:

  • zvinopfuura makumi manomwe zvakabatanidzwa (zvimwe zvacho zvinogona kutariswa pano www.moysklad.ru/integratsii);
  • 8500 makambani;
  • 12 vashandisi;
  • 46 mamiriyoni ekukumbira pazuva;
  • 2 TB / zuva rekubuda traffic.

Chii chinotevera

Zvirongwa zvekuvandudza API zviri pasi pehurukuro inoshanda. Isu tinoedza kufunga nezve chiitiko chekushanda icho vashandisi vanotipa. Hazvisi nguva dzose zvinogoneka kuita zvese kamwechete, asi vhezheni itsva yeAPI ichangotenderedza pakona ine metadata yakareruka uye ine zvishoma fluffy chimiro, OAuth yekusimbisa, uye API yemashandisirwo akavakirwa mukati meiyo interface.

Iwe unogona kutevera nhau pane yakakosha webhusaiti yevagadziri vekubatanidza neMySklad: dev.moysklad.ru.

Source: www.habr.com

Voeg