Kākau i API - haehae iā XML (ʻelua)

Ua ʻike ʻia ka MySklad API mua ma 10 mau makahiki i hala. I kēia manawa a pau mākou e hana nei i nā mana o ka API a me ka hoʻomohala ʻana i nā mea hou. A ua kanu ʻia kekahi mau mana o ka API.

E loaʻa i kēia ʻatikala nā mea he nui: pehea i hana ʻia ai ka API, no ke aha e pono ai ka lawelawe kapuaʻi, nā mea e hāʻawi ai i nā mea hoʻohana, he aha nā hewa a mākou i hana ai a me nā mea a mākou e makemake ai e hana aʻe.

ʻO Oleg Alekseev koʻu inoa oalexeev, ʻO wau ke alakaʻi ʻenehana a me ka hoʻokumu pū ʻana o MySklad.

No ke aha e hana ai i API no kahi lawelawe

ʻO kā mākou mau mea kūʻai aku, he ʻumi kaukani o nā ʻoihana, hoʻohana ikaika i nā hoʻonā kapua: ka waihona kālā, nā hale kūʻai pūnaewele, ka helu helu waiwai, CRM. Ke hoʻohui ʻoe i kekahi, paʻakikī ke hoʻōki. A i kēia manawa ua maʻalahi ka lawelawe ʻelima, ʻewalu, ʻumi i ka hana a ka ʻoihana, akā hoʻololi nā mea hoʻohana i ka ʻikepili ma waena o kēia mau lawelawe kapuaʻi me ka lima. Lilo ka hana i moeʻuhane.

ʻO ka hāʻina maopopo ʻo ia ka hāʻawi ʻana i nā mea hoʻohana i ka hiki ke hoʻololi i ka ʻikepili ma waena o nā lawelawe kapuaʻi. No ka laʻana, lawe mai a lawe aku i ka ʻikepili ma ke ʻano he faila, a laila hiki ke hoʻouka ʻia i ka lawelawe i makemake ʻia. Hoʻololi pinepine ʻia nā faila e kūpono i ke ʻano o kēlā me kēia lawelawe. ʻO kēia ka hana lima maʻalahi a maʻalahi paha, akā me ka hoʻonui ʻana i ka helu o kēia mau lawelawe, lilo ia i mea paʻakikī loa e hana.

No laila, ʻo ka pae aʻe ka API. Me ia, pōmaikaʻi ka lawelawe kapuaʻi mai ka ʻoiaʻiʻo e pili ana i nā lawelawe he nui i ka manawa hoʻokahi. ʻO ka puka ʻana mai o ia ʻano kaiaola e huki i nā mea kūʻai aku ma muli o nā manawa hou. ʻO kahi huahana me nā hana hou e lilo i mea waiwai a pono.

Inā hoʻokumu ʻoe i kāu mau polokalamu hoʻonohonoho ponoʻī, hoʻokipa kēia i nā poʻe kūʻai aku ʻekolu ma ke ʻano o nā polokalamu polokalamu e ʻike e pili ana i kāu huahana mahalo i ka API. Hoʻomaka lākou e kūkulu i nā hoʻonā e pili ana i ka API i manaʻo ʻia a loaʻa kālā ma ka hoʻomaʻamaʻa ʻana i nā hana a kā lākou mea kūʻai aku.

Hoʻokumu ʻia ka ʻōnaehana helu MySklad ma nā kaʻina hana maʻalahi. ʻO ka mea nui ka hana me nā palapala kumu, ka hiki ke ʻae a hoʻouna i nā waiwai, a loaʻa i nā hōʻike ʻoihana e pili ana i nā palapala kumu. Aia nō hoʻi ka hoʻoili ʻana o ka ʻikepili, no ka laʻana i ka helu helu ao, a me kāna loaʻa mai nā ʻōnaehana panakō a i ʻole nā ​​​​hale kūʻai kūʻai. Hana pū mākou me nā hale kūʻai pūnaewele: loaʻa iā mākou ka ʻike e pili ana i nā huahana a hoʻouna i ka ʻike e pili ana i nā kaulike.

Kākau i API - haehae iā XML (ʻelua)

ʻO ka API mua o MySklad

Ma luna o nā makahiki 10 o MySklad e hana pū ana me API, ua loaʻa iā mākou nā ʻano hoʻohui like ʻole e hiki ai iā mākou ke hoʻololi i ka ʻikepili, hana me nā panakō, hana i nā uku a hoʻohana i nā kelepona waho.

I ka makahiki mua, hiki iā mākou ke hoʻoiho i kekahi ʻikepili ma ka format XML. I kēlā manawa, ʻoi aku ka maʻalahi a ʻoi aku ka maʻamau o nā mea hoʻohana e mālama i ka ʻikepili ma waho, ʻaʻole ma kekahi ao, a hāʻawi mākou iā lākou. Ua hoʻomaka ʻia ka hoʻouka ʻana e ka lawe lima lima mai ka interface. ʻO ia hoʻi, ʻaʻole hiki ke kapa ʻia he API.

I ka manawa like, ua hoʻomaka mākou e hui pū me ka hui Rusagro - ua hoʻohana mua lākou i kahi ERP "ʻelemakule" no ka hoʻolālā ʻana a me ka hoʻolālā kūʻai ʻana, akā ua hoʻokomo lākou i ka hoʻouka ʻana o nā kaʻa ma nā hale hana ma MySklad. ʻO kēia ke ala i loaʻa ai iā mākou nā kumu mua o kahi API maoli: ua hoʻololi ʻia ka hoʻololi ma waena o kā mākou lawelawe a me ERP ma ka hoʻouna ʻana i kahi faila nui me ka ʻikepili ma nā ʻano palapala āpau.

He koho maikaʻi kēia no ka hoʻololi ʻana i ka ʻikepili puʻupuʻu, akā me nā palapala e pono ai mākou e hoʻololi i kā lākou hilinaʻi: ʻike e pili ana i nā waiwai, nā mea hana a me nā hale kūʻai. ʻAʻole paʻakikī loa ka hoʻopuka ʻana i ka hoʻoiho ʻana, akā paʻakikī loa ka hoʻopaʻa ʻana i ka wā e lawe mai ai, no ka mea, hiki mai nā ʻike āpau i hoʻokahi pūʻolo: e pili ana i nā palapala hou a me nā mea i loaʻa.

ʻAʻole ola lōʻihi ka XML API mua - ʻelua makahiki ma hope mai ua hoʻomaka mākou e kūkulu hou. ʻOiai i ka hoʻomaka ʻana o kāna hana, ua hana mākou i kekahi mau hewa i ke kūkulu ʻana i ka polokalamu polokalamu.

Kākau i API - haehae iā XML (ʻelua)
Pehea i hana ʻia ai ka XML API: kiʻi mai kekahi o kā mākou mea kākau. Ma ke ala, e hoʻomau i kāna mau ʻatikala.

Eia kā mākou mau hewa nui:

  1. Ua hana pololei ʻia ka hōʻailona JAXB ma nā pīni hui. Hoʻohana mākou i ka Hibernate e kamaʻilio me ka waihona, a ua hana ʻia ka markup JAXB no nā pī like. Ua ʻike koke ʻia kēia kuhi hewa: ʻo ka hoʻonui ʻana i ka hoʻolālā ʻikepili i alakaʻi i ka pono e hoʻolaha koke i ka poʻe a pau e hoʻohana ana i ka API, a i ʻole ke kūkulu ʻana i nā koʻokoʻo e hōʻoiaʻiʻo ai i ka hoʻohālikelike ʻana me ka ʻōnaehana ʻikepili mua.
  2. Ua ulu ka API ma ke ʻano he mea hoʻohui, a ʻaʻole mākou i wehewehe mua i ka ʻāpana o ka huahana. ʻAʻole lākou i noʻonoʻo inā he mea koʻikoʻi ka API, inā pono e mālama i ka hoʻohālikelike hope no kāna mau mea kūʻai mua. I kekahi manawa, ʻo ka helu o nā mea hoʻohana API ma kahi o 5% o ka helu liʻiliʻi, a ʻaʻohe mea i nānā ʻia iā lākou. ʻO ka kānana holoʻokoʻa i hana ʻia i ka manawa hoʻokahi alakaʻi iā mākou e hoʻohana ʻia ma ke ʻano he hope. ʻAʻole kēia kānana ʻo GraphQL i nā mea āpau, akā he mea like ia - ua hana ia ma o ka nui o nā ʻāpana string query. Me ia mea hana ikaika, ua paʻakikī i nā mea hoʻohana ke kūʻē, a ua hoʻoili ʻia nā noi iā mākou i hoʻouna pololei ʻia mai ka UI o kā lākou mau hale kūʻai pūnaewele. He mea ʻoluʻolu ʻole ke kūlana, no ka mea, ʻo ka hāʻawi ʻana i ia lawelawe pono e koi i nā kumu kūʻai ʻokoʻa a me ka ʻike like ʻole o ka API ponoʻī ma ke ʻano he huahana.
  3. Ma muli o ka hoʻomohala ʻole ʻana o ka API ma ke ʻano he huahana nui, ua hana ʻia nā palapala API a paʻi ʻia ma ke koena kumu - ma o ka ʻenekinia hoʻohuli. He mea maʻalahi a maʻalahi kēia ala, akā kū'ē ia i ka hana ma lalo o kahi ʻaelike. ʻO kēia ka wā e loaʻa ai kekahi ʻāpana me kahi papa hana preset. Hoʻokō ka mea hoʻomohala e like me kēia hoʻolālā a me ka hana, ua hoʻāʻo ʻia ka ʻāpana, a loaʻa i ka mea kūʻai aku kahi huahana i kūpono i ka manaʻo o ka mea loiloi. Hoʻolei ʻia ka ʻenekinia hoʻohuli i ka mākeke i kahi huahana e kū wale ana: me nā koʻokoʻo, nā hoʻonā ʻokoʻa a me nā kaʻa kaʻa ma mua o ka hana pono.
  4. Hiki ke nānā ʻia ke kahawai holoʻokoʻa o nā noi i hele mai ma o ka API ma ke ʻano he Nginx a i ʻole log server. ʻAʻole kēia i ʻae iā mākou e ʻike i nā wahi kumuhana, koe wale nō na nā mea hoʻohana a me nā mea kākau inoa. Inā ʻaʻohe ala e hoʻoponopono ai i ka palapala noi a i ʻole ka hoʻopaʻa inoa o ka mea kūʻai aku, hiki ʻole ke nānā i ke kūlana. ʻO kēia pilikia ka hopena liʻiliʻi loa i ka hoʻomohala ʻana o ka API; ʻoi aku ia e pili ana i ka hoʻomaopopo ʻana i kona pili a me kāna hana.

Ka helu ʻelua: REST API

I ka makahiki 2010, ua hoʻāʻo mākou e kūkulu i kahi ʻōnaehana hoʻololi me ka helu helu pūnaewele - BukhSoft. ʻAʻole i haʻalele. Akā i ka wā o ka hoʻohui ʻana, ua ʻike ʻia kahi API piha piha: kahi lawelawe hoʻololi REST, kahi i loaʻa ʻole ai nā ʻokoʻa e like me ke komo ʻana i nā hana ma ke ʻano o nā kelepona RPC. Ua lawe ʻia nā kamaʻilio āpau me ka API i ke ʻano maʻamau no ka hoʻomaha: aia i ka laina nīnau ka inoa o ka hui, a ʻo ka hana i hana ʻia me ia i kuhikuhi ʻia me ke ʻano http. Hoʻohui mākou i ka kānana e pili ana i ka wā i hoʻonui ʻia ai nā hui, a ua loaʻa i nā mea hoʻohana i kēia manawa ka manawa e kūkulu hou ai me kā lākou ʻōnaehana.

I ka makahiki hoʻokahi, ua ʻike ʻia kahi API no ka wehe ʻana i ka hale kūʻai a me nā koena waihona. Ua loaʻa nā ʻāpana koʻikoʻi o ka ʻōnaehana i nā mea hoʻohana ma o ka API - ka hoʻololi ʻana i nā palapala kumu a me nā ʻikepili i helu ʻia ma nā kaulike a me ke kumukūʻai o nā waiwai.

I Kekemapa 2015, ua hoʻopuka ʻo RetailCRM i ka waihona ʻaoʻao ʻekolu e komo i kā mākou API. Ua hoʻomaka ʻia e hoʻohana ikaika ʻia, ʻoiai ua ulu ka kaulana o ka lawelawe ma ke ʻano holoʻokoʻa, ʻoi aku ka wikiwiki o ka ukana ma ka API ma mua o ka hoʻouka ʻana ma ka pūnaewele pūnaewele. Hoʻokahi lā ua lilo ka ulu ʻana i ka loaʻa ʻana o ka ukana.

Kākau i API - haehae iā XML (ʻelua)

Kākau i API - haehae iā XML (ʻelua)

A ʻo kēia lele ʻana, i hōʻike ʻia e ka pua ma ka ʻaoʻao hema, kahaha loa i ka server e lawelawe ana i kā mākou API. Hoʻokahi pule mākou e noʻonoʻo ai i ka mea e hoʻopuka ai i kēia ukana. Ua ʻike ʻia ʻo ia nā noi like i hoʻouna ʻia i kā mākou API mai ka mua o ka mea kūʻai aku. Ma kahi o 50 mau mea kūʻai i ʻai i nā mea āpau. ʻO ia ka manawa a mākou i ʻike ai i kekahi o kā mākou mau hewa - ka nele o nā palena.

ʻO ka hopena, ua hoʻokomo mākou i ka palena o ka nui o nā noi like. I kēia manawa hiki ke wehe i ʻelua mau noi i ka manawa like mai kahi moʻokāki. Ua lawa kēia no ka hana ʻana ma ke ʻano hoʻopiʻi no ka hoʻololi ʻana i ka ʻikepili ma ke ʻano batch. A ʻo ka poʻe i makemake e hoʻohana iā mākou ma ke ʻano he backend, mai ia manawa mai, ua koi ʻia lākou e hoʻokō maikaʻi i nā kumukūʻai, ʻoiai ua hoʻokomo lākou i ka hana ma kekahi mau moʻolelo i kā lākou polokalamu.

E hoʻonohonoho kāua

Mai ka makahiki 2014, ua lilo ka noi no ka API i kēia manawa i mea nui o ka ʻoihana, a ʻo ka API ponoʻī e hoʻopuka i ka nui o ka ʻikepili i ka hoʻololi ʻana i ka ʻikepili me nā mea kūʻai aku. Ma 2015, ua hoʻomaka mākou i kahi papahana e hoʻomaʻemaʻe i ka API. Ua koho mākou iā JSON ma kahi o XML e like me ke ʻano a hoʻomaka mākou e kūkulu ma muli o nā hiʻohiʻona i ʻike ʻia i ka wā o ka hoʻokō ʻana o ka mana mua:

  1. Hiki ke hoʻokele i nā mana. Hiki iā ʻoe ke hoʻomohala i kahi mana hou me ka ʻole o ka hoʻopili ʻana i ka noi e kū nei a i ʻole ke hoʻopau ʻana i ka ʻike mea hoʻohana.
  2. ʻO ka hiki i ka mea hoʻohana ke ʻike i ka metadata ma ka pane ponoʻī i loaʻa iā ia.
  3. Hiki ke hoʻololi i nā palapala nui. Inā mākou e hana i kahi palapala me nā kūlana ʻoi aku ma mua o 4-5 tausani, lilo kēia i pilikia no ke kikowaena: kahi hana lōʻihi, kahi noi http lōʻihi. Ua kūkulu mākou i kahi hana kūikawā e hiki ai iā ʻoe ke hoʻololi i kahi palapala i nā ʻāpana a mālama i nā kūlana pākahi o kēia palapala ma o ka hoʻouna ʻana iā lākou i ke kikowaena.
  4. Loaʻa nā mea hana no ka hana hou ʻana i ka mana mua.
  5. ʻO nā palena hoʻouka e like me ka hoʻoilina o ka rake i hehi ʻia ma ka mana mua. Ua hoʻokomo mākou i nā palena i ka helu o nā noi i kahi manawa, ka helu o nā noi like a me nā noi mai hoʻokahi IP address.

Mai ia manawa, ua hoʻokuʻu mākou i ʻelua mau mana liʻiliʻi o ka API a ua hoʻokuʻu i kekahi mau API kūikawā, akā ʻaʻole i loli ke ʻano holoʻokoʻa. ʻO ke ʻano hoʻololi hou a me ka hoʻolālā hou i hiki ke hoʻoponopono i nā hemahema i ka API me ka wikiwiki.

MySklad API i kēia lā

I kēia lā, hoʻoponopono ka MySklad API i nā pilikia he nui:

  • hoʻololi ʻikepili me nā hale kūʻai pūnaewele, nā ʻōnaehana helu, nā panakō;
  • ka loaʻa ʻana o ka ʻikepili helu a me nā hōʻike;
  • hoʻohana ma ke ʻano he backend no nā noi mea kūʻai aku - ʻo kā mākou mau polokalamu kelepona a me ka papa inoa waihona kālā e hana ma o API
  • ka hoʻouna ʻana i nā leka e pili ana i nā loli ʻikepili ma MySklad - webhooks;
  • kelepona;
  • ʻōnaehana kūpaʻa.

Ma muli o ka API, ko mākou Luna Nui ʻo Askar Rakhimberdiev rhino i loko o ʻehā hola ua kākau au i kahi bot telegram e huki i nā koena ma o ka API: github.com/arahimberdiev/com-lognex-telegram-moysklad-stock

I kēia manawa maloʻo nā helu.

Eia kā mākou ʻikepili no ka REST API kahiko:

  • 400 hui;
  • 600 mea hoʻohana;
  • 2 miliona noi i kēlā me kēia lā;
  • 200 GB / lā o ka hele ʻana i waho.

A eia kā mākou i loaʻa mai ai no nā API MySklad a pau:

  • ʻoi aku ma mua o 70 mau hoʻohui (hiki ke ʻike ʻia kekahi o lākou ma aneʻi www.moysklad.ru/integratsii);
  • 8500 hui;
  • 12 mea hoʻohana;
  • 46 miliona noi i kēlā me kēia lā;
  • 2 TB/lā o ka hele ʻana i waho.

He aha ka mea aʻe

Aia nā hoʻolālā hoʻomohala API ma lalo o ke kūkākūkā ikaika. Hoʻāʻo mākou e noʻonoʻo i ka ʻike hana a nā mea hoʻohana e hāʻawi mai iā mākou. ʻAʻole hiki ke hana i nā mea āpau i ka manawa hoʻokahi, akā aia kahi mana hou o ka API ma kahi o ke kihi me ka metadata maʻalahi a me kahi ʻano liʻiliʻi liʻiliʻi, OAuth no ka hōʻoia ʻana, a me kahi API no nā noi i kūkulu ʻia i loko o ka interface.

Hiki iā ʻoe ke hahai i ka nūhou ma kahi pūnaewele kūikawā no nā mea hoʻomohala hoʻohui me MySklad: dev.moysklad.ru.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka