API-yek nivîsand - XML ​​hilweşand (du)

Yekem MySklad API 10 sal berê xuya bû. Hemî vê demê em li ser guhertoyên heyî yên API-yê dixebitin û yên nû pêş dixin. Û gelek guhertoyên API-ê berê hatine veşartin.

Di vê gotarê de dê gelek tişt hebin: API çawa hate afirandin, çima karûbarê ewr jê re hewce dike, ew çi dide bikarhêneran, me çi xeletî kir ku em gav bavêjin û em dixwazin paşê çi bikin.

Navê min Oleg Alekseev e oalexeev, Ez rêveberê teknîkî û hev-avakarê MySklad im.

Çima ji bo karûbarek API çêbikin

Xerîdarên me, ku bi deh hezaran karsaz in, bi aktîvî çareseriyên ewr bikar tînin: banking, firotgehên serhêl, hesabkirina tiştan, CRM. Gava ku hûn bi yekî ve girêdidin, dijwar e ku meriv raweste. Û naha karûbarê pêncemîn, heştemîn, dehemîn karê karsaz hêsantir dike, lê bikarhêner daneyan di navbera van karûbarên ewr de bi destan vediguhezînin. Kar vediguhere kabûsekê.

Çareseriya eşkere ev e ku ji bikarhêneran re şiyana veguheztina daneyan di navbera karûbarên cloudê de bide. Mînakî, daneyan wekî pelan derxînin û derxînin, ku dûv re dikarin li ser karûbarê xwestinê werin barkirin. Pelên bi gelemperî têne guheztin ku li gorî formata her karûbarê xweş bibin. Ev kêm-zêde karê destan hêsan e, lê bi zêdebûna hejmara van karûbaran re, pêkanîna wê her ku diçe dijwartir dibe.

Ji ber vê yekê, gava paşîn API ye. Bi wê re, karûbarê ewr ji vê yekê sûd werdigire ku ew çend karûbar di yek xalê de girêdide. Derketina holê ya ekosîstemek wusa ji ber derfetên zêde xerîdarên nû dikişîne. Hilberek bi fonksiyonên nû bikêrtir û bikêrtir dibe.

Ger hûn navgînên bernamesaziya xwe biafirînin, ev di forma bernameçêkeran de ku bi saya API-ê derheqê hilberê we de dizanin, firotkarên sêyemîn dikişîne. Ew dest bi avakirina çareseriyan li ser bingeha API-ya pêşniyar dikin û bi otomatîkkirina karên xerîdarên xwe drav didin.

Pergala hesabê MySklad li ser pêvajoyên hêsan e. Ya sereke ev e ku hûn bi belgeyên bingehîn re bixebitin, kapasîteya pejirandin û şandina tiştan, û wergirtina raporên karsaziyê li ser bingeha belgeyên bingehîn. Di heman demê de veguheztina daneyan jî heye, mînakî hesabkirina ewr, û wergirtina wê ji pergalên bankingê an firotgehên firotanê. Em bi firotgehên serhêl re jî dixebitin: em di derheqê hilberan de agahdarî distînin û di derheqê hevsengiyan de agahdarî dişînin.

API-yek nivîsand - XML ​​hilweşand (du)

Yekem API-ya MySklad

Di nav 10 salên ku MySklad bi API re dixebite, me her cûre entegrasyonê bi dest xistiye ku rê dide me ku em daneyan biguhezînin, bi bankayan re bixebitin, drav bidin û têlefoniya derveyî bikar bînin.

Di sala yekem de, me îmkan da ku em her daneyê bi formata XML dakêşin. Wê hingê, ji bo bikarhêneran pir zelal û gelemperî bû ku daneyan negirêdayî, û ne di hin ewr de bihêlin, û me ew da wan. Barkirin bi hinartina bi destan ji navbeynê dest pê kir. Ango, hîn jî nedihat binavkirin API.

Di heman demê de, me dest bi hevkariyê kir bi pargîdaniya Rusagro re - wan jixwe ji bo plansazkirina hilberîn û firotanê ERP-ya "mezinan" bikar tînin, lê wan barkirina otomobîlan li kargehên li MySklad otomatîkî kir. Bi vî rengî me destkeftiyên yekem ên API-yek rastîn girt: danûstendina di navbera karûbarê me û ERP de bi şandina pelek mezin bi daneyên li ser hemî celeb belgeyan pêk hat.

Ev vebijarkek baş e ji bo danûstendina daneya berhevokê, lê digel belgeyan me neçar ma ku girêdanên wan veguhezînin: agahdariya li ser tiştan, peymankar û depoyan. Di dema hinardekirinê de hilberandinek wusa ne ew qas dijwar e, lê di dema îthalatê de parskirina wê pir dijwar e, ji ber ku hemî agahdarî di yek pakêtê de tê: hem di derbarê belgeyên nû û hem jî yên heyî de.

Yekem XML API dirêj nejiya - du sal şûnda me dest bi avakirina wê kir. Tewra di destpêka xebata wê de, me di avakirina navgîniya nermalavê de gelek xeletî kir.

API-yek nivîsand - XML ​​hilweşand (du)
Çawa XML API hate çêkirin: nîgarek ji yek ji mîmarên me. Bi awayê, ji bo gotarên wî bimînin.

Li vir xeletiyên me yên sereke hene:

  1. Nîşana JAXB rasterast li ser fasûleyên sazûmanê hate kirin. Em Hibernate bikar tînin da ku bi databasê re têkilî daynin, û nîşankirina JAXB ji bo heman fasuleyan hate çêkirin. Ev xelet hema hema di cih de xuya bû: her nûvekirina avahiya daneyê bû sedema hewcedariya bilez a agahdarkirina her kesê ku API-ê bikar tîne, an jî çêkirina kulpên ku dê lihevhatina bi avahiya daneya berê re misoger bike.
  2. API wekî pêvek mezin bû, û me di destpêkê de diyar nekir ku ew çi beşek hilberê ye. Wan tewra nedifikirî ku gelo API tiştek girîng bû, gelo pêdivî ye ku ji bo xerîdarên xwe yên yekem lihevhatina paşdemayî bimîne. Di yek xalê de, hejmara bikarhênerên API-ê bi qasî 5% ji hejmarek piçûk bû, û guh nedan wan. Parzûna gerdûnî ya ku yek carî hatî kirin bû sedem ku em wekî paşverû were bikar anîn. Ev fîlterkirin qet ne GraphQL bû, lê tiştek wusa bû - ew di nav gelek parametreyên rêzika pirsê de xebitî. Bi amûrek wusa hêzdar re, ji bo bikarhêneran dijwar bû ku li ber xwe bidin, û daxwaz ji me re hatin veguheztin da ku ew rasterast ji UI-ya firotgehên xweyên serhêl werin şandin. Rewş surprîzek ne xweş bû, ji ber ku peydakirina karûbarek wusa pêdivî bi bihayê cûda û bi gelemperî têgihiştinek cûda ya API-ya xwe wekî hilberek hewce dike.
  3. Ji ber ku API wekî hilberek sereke nehatiye pêşve xistin, belgeyên API-ê li ser bingehek mayî hate hilberandin û weşandin - bi navgîniya endezyariya berevajî. Ev rê pir hêsan û hêsan xuya dike, lê ew li dijî xebata di bin peymanê de ye. Ev gava ku hin pêkhateyek bi nexşeyek xebitandinê ya pêşwext heye heye. Pêşvebir wê li gorî vê nexşe û peywirê bicîh tîne, beş tê ceribandin, û xerîdar hilberek ku bi ramana analîstê re têkildar distîne. Endezyariya berevajî hilberek ku bi tenê heye davêje sûkê: li şûna fonksiyonên pêwîst, bi kêzikan, çareseriyên xerîb û bisiklêtan.
  4. Tevahiya herikîna daxwazên ku bi navgîniya API-yê ve hatî dikare wekî têketinek serverek Nginx an serîlêdanê wêdetir were analîz kirin. Vê yekê nehişt ku em qadên mijarê nas bikin, ji bilî dibe ku ji hêla bikarhêner û aboneyan ve. Ger rêyek ji bo birêkûpêkkirina serîlêdanê an qeydkirina xerîdar tune be, analîzkirina rewşê ne gengaz dibe. Vê pirsgirêkê herî kêm bandor li ser pêşkeftina API-yê kir; ew bêtir di derbarê têgihîştina têkildar û fonksiyona wê de ye.

Hewldana hejmara du: REST API

Di sala 2010-an de, me hewl da ku bi hesabê serhêl - BukhSoft pergalek danûstendinê ava bikin. Ranekirin. Lê di dema pêvajoya entegrasyonê de, API-yek bêkêmasî xuya bû: karûbarek danûstendinê ya REST, ku li wir azadî tune bûn, wekî gihîştina operasyonan di forma bangên RPC de. Hemî danûstendina bi API-ê re ji bo bêhnvedanê hate moda standard: xêza pirsê navê saziyê dihewîne, û operasyona ku pê re tê kirin bi rêbaza http-ê tête diyar kirin. Me fîlterkirin li gorî dema nûvekirina saziyan lê zêde kir, û bikarhêner naha fersendê hene ku bi pergalên xwe re dubarekirinê ava bikin.

Di heman salê de, API-yek ji bo rakirina hevsengên wargeh û envanterê xuya bû. Parçeyên herî hêja yên pergalê bi API-ê ji bikarhêneran re peyda bûne - pevguhertina belgeyên seretayî û daneyên hesabkirî yên li ser hevseng û lêçûnên tiştan.

Di Kanûna 2015-an de, RetailCRM yekem pirtûkxaneya partiya sêyemîn weşand ku gihîştina API-ya me. Ew dest pê kir ku bi rengek çalak were bikar anîn, dema ku populerbûna karûbarê bi tevahî mezin bû, barkirina li ser API-ê ji barkirina li ser navbeynkariya malperê zûtir mezin bû. Rojek mezinbûn veguherî zêdebûna barkirinê.

API-yek nivîsand - XML ​​hilweşand (du)

API-yek nivîsand - XML ​​hilweşand (du)

Û ev bazdan, ku bi tîra li milê çepê ve hatî destnîşan kirin, servera ku API-ya me dike bi tevahî matmayî ma. Me hefteyek derbas kir ku em fêhm bikin ka bi rastî çi ev bar çêdike. Derket holê ku ev heman daxwazên ku ji eniyên xerîdar ji API-ya me re hatine veguheztin in. Nêzîkî 50 mişteriyan her tişt xwarin. Wê hingê me yek ji xeletiyên xwe fêm kir - nebûna tevahî sînoran.

Wekî encamek, me li ser hejmara daxwazên hevdem sînorek destnîşan kir. Naha gengaz e ku meriv ji yek hesabek hevdemî zêdetirî du daxwazan veke. Ev bes e ku meriv di moda dubarekirinê de bixebite ji bo danûstendina daneyê di moda hevîrê de. Û yên ku dixwestin me wekî paşverû bikar bînin, ji wê gavê û pê ve, neçar bûn ku baştir bi tarîfan re tevbigerin, ji ber ku wan kar li ser çend hesaban xist nav nermalava xwe.

Werin em rêzê lê bidin

Jixwe ji sala 2014-an vir ve, daxwaziya API-ya heyî bûye beşek girîng a karsaziyê, û API bixwe di danûstendina daneyan bi xerîdaran re mezintirîn mezintirîn daneyan çêdike. Di 2015 de, me projeyek ji bo paqijkirina API-ê da destpêkirin. Me JSON li şûna XML wekî format hilbijart û li ser bingeha taybetmendiyên ku di dema pêkanîna guhertoya berê de hatine nas kirin dest bi avakirina wê kir:

  1. Kapasîteya birêvebirina versiyonên. Guhertokirin dihêle hûn guhertoyek nû pêş bixin bêyî ku bandorê li serîlêdana heyî bike an ezmûna bikarhêner têk bibe.
  2. Kapasîteya ku bikarhêner di bersiva ku ew distîne de metadata bibîne.
  3. Kapasîteya danûstandina belgeyên mezin. Ger em belgeyek bi zêdetirî 4-5 hezar pozîsyonan pêvajo bikin, ev ji bo serverê dibe pirsgirêk: danûstendinek dirêj, daxwazek dirêj a http. Me mekanîzmayek taybetî ava kir ku dihêle hûn belgeyek parçeyan nûve bikin û bi şandina wan ji serverê re pozîsyonên kesane yên vê belgeyê birêve bibin.
  4. Amûrên ji bo dubarekirinê di guhertoya berê de jî hebûn.
  5. Sînorên barkirinê mîna mîrateyek rakêşê ne ku di guhertoya berê de pê ve hatiye avêtin. Me sînorên li ser hejmara daxwaznameyên di heyamekê de, hejmara daxwazên paralel û daxwazên ji yek navnîşana IP-yê destnîşan kirin.

Ji hingê ve, me du guhertoyên piçûk ên API-yê berdane û çend API-yên pispor dane destpêkirin, lê nêzîkatiya giştî neguherî ye. Forma danûstendinê ya nûvekirî û mîmariya nû ev gengaz kir ku xeletiyên di API-ê de pir zûtir rast bikin.

MySklad API îro

Îro, MySklad API gelek pirsgirêkan çareser dike:

  • danûstandina daneyan bi firotgehên serhêl, pergalên hesabkirinê, bankan;
  • bidestxistina dane û raporên hesabkirî;
  • ji bo serîlêdanên xerîdar wekî paşvekêşek bikar bînin - sepanên me yên mobîl û kaseya sermaseyê bi API-yê dixebitin
  • şandina agahdariyan di derbarê guhertinên daneyê de li MySklad - webhooks;
  • telefonî;
  • sîstemên dilsoziya.

Li ser bingeha API-ê, CEOyê me Askar Rakhimberdiev gergedan di çar saetan de min botek telegramê nivîsî ku bermayiyan bi API-yê dikişîne: github.com/arahimberdiev/com-lognex-telegram-moysklad-stock

Niha hejmarên hişk.

Li vir statîstîkên me yên ji bo REST API-ya kevn in:

  • 400 şirket;
  • 600 bikarhêner;
  • 2 mîlyon daxwaz her roj;
  • 200 GB / roj seyrûsefera derketinê.

Û li vir tiştê ku me ji bo hemî API-yên MySklad peyda kir ev e:

  • zêdetirî 70 entegrasyonê (hin ji wan dikarin li vir werin dîtin www.moysklad.ru/integratsii);
  • 8500 şirket;
  • 12 bikarhêner;
  • 46 mîlyon daxwaz her roj;
  • 2 TB / roj ji seyrûsefera derketinê.

Çi ye?

Planên pêşveçûna API-ê di bin nîqaşek çalak de ne. Em hewl didin ku ezmûna xebitandinê ya ku bikarhêner ji me re peyda dikin bihesibînin. Ne her gav ne gengaz e ku meriv her tiştî bi yekcarî bike, lê guhertoyek nû ya API-yê hema hema li dora metadata hêsantir û avahiyek hindiktir e, OAuth ji bo pejirandinê, û API-yek ji bo serîlêdanên ku di navbeynê de hatî çêkirin.

Hûn dikarin nûçeyê li ser malperek taybetî ji bo pêşdebirên entegrasyonê bi MySklad re bişopînin: dev.moysklad.ru.

Source: www.habr.com

Add a comment