Makemake ʻoe e hoʻopili i kāu polokalamu iā Facebook i hiki iā ia ke hoʻopuka maʻalahi i nā pou, a i ʻole Instagram i hiki iā ʻoe ke kau hou i nā kiʻi me kekahi mau hashtags?
Hiki paha iā ʻoe ke hoʻokomo i nā wikiō YouTube ma kāu pūnaewele. Hiki iā ʻoe ke hana i kēia mau hana āpau a me nā mea hou aku (API).
Hiki i nā noi like ʻole ke "'ōlelo" kekahi i kekahi ma ke ʻano palekana a maʻamau hoʻi i nā API e like me ka Instagram API, Facebook API, a me YouTube API.
I nā huaʻōlelo ʻē aʻe, hiki i kahi polokalamu ke lawe i nā hiʻohiʻona a i ʻole nā ʻikepili mai kahi ʻāpana polokalamu ʻē aʻe a hoʻohana iā lākou e hoʻomaikaʻi i kāna mau hiʻohiʻona a i ʻole ka ʻike mea hoʻohana. Akā pehea e hiki ai i nā polokalamu ke hana i kēia mau noi, hoʻoponopono iā lākou, a pane aku iā lākou ma ke ʻano e hiki ai i nā poʻe ke hoʻomaopopo?
Pili ia i ka hana ʻana o ka API. Ke kūkākūkā ʻana i nā hoʻolālā API (application programming interface), he mea maʻamau ka hoʻohālikelike ʻana i ka SOAP vs. REST, ʻelua o nā paradigms API kaulana loa.
I ka manawa i lilo ai nā SOAP API (Simple Object Access Protocol) i kumu gula no nā ʻoihana e like me Oracle, Sun, a me PayPal, aia ka pane like a kū'ē i hoʻokahi makahiki a i ʻole ma hope aku i nā REST API mai Google, Amazon, a me eBay.
Ma kēia pou, e hoʻohālikelike a hoʻohālikelike mākou i nā API SOAP me nā REST API i hiki iā ʻoe ke hoʻoholo i ka mea maikaʻi loa no kāu mau kumu.
E hoʻomaka mākou ma ka wehewehe ʻana i ka API.
He aha ka API?
Ua kapa ʻia ʻo Application Programming Interface he API. ʻO nā API he hōʻuluʻulu o nā ʻano hana a me nā hana e hiki ai ke hoʻomohala i nā polokalamu. Loaʻa iā lākou ka ʻike a me nā hana o nā polokalamu like ʻole, nā lawelawe, a i ʻole nā ʻōnaehana hana.
Hana lākou ma ke ʻano he middleman ma waena o nā ʻōnaehana polokalamu like ʻole. Hiki iā lākou ke "kamaʻilio" ma waena o ʻelua papahana pili ʻole.
E lawe kākou i ka laʻana o kahi mea kūʻai kālā e komo ikaika ana i ke kālepa a me nā mākeke kālā. ʻO kahi hōʻiliʻili o nā mea maʻalahi kālepa algorithms hiki ke hoʻopili ʻia i kahi kahua kālepa kālepa punahele a ka mea kālepa ma o kahi API. Hāʻawi kēia iā ʻoe, ka mea kālepa, e hoʻokō i nā kālepa uila a ʻike paha i nā huaʻōlelo manawa maoli a me nā ʻikepili kumu kūʻai.
He aha ka REST?
Aia nā API "lawelawe pūnaewele" maoli i ka REST (Representational State Transfer). Hoʻokumu ʻia nā API REST ma luna o nā URI (Uniform Resource Identifiers, nona kahi URL he ʻano kūikawā), ka protocol HTTP, a me ka hōpili ʻikepili JSON kūpono loa i ka polokalamu kele pūnaewele.
Hiki ke hoʻohana ʻia ka protocol SOAP, e like me kā mākou i ʻōlelo ai. Hiki ke maʻalahi ka hana a me ka ulu ʻana o nā API REST, akā hiki ke paʻakikī a paʻakikī hoʻi - pili ia i ka hana ʻana, hoʻonui ʻia, a me nā mea i manaʻo ʻia e hana.
ʻO nā kaohi waiwai, nā koi palekana i hoʻemi ʻia, ka launa pū ʻana o ka mea hoʻohana polokalamu kele pūnaewele, ka ʻike ʻana, ke olakino ʻikepili, a me ka scalability kekahi mau kumu āu e makemake ai e hoʻomohala i kahi API i hoʻomaha—nā mea pili maoli i nā lawelawe pūnaewele.
Hāʻawi ʻo REST i kahi koho māmā. He paʻakikī ka SOAP e hoʻohana a kaumaha i nā mea hoʻomohala he nui. No ka laʻana, me ka hoʻohana ʻana i ka SOAP me JavaScript e koi i ke kākau ʻana i nā code he nui e hoʻopau i nā hana maʻalahi mai ka mea pono e hana ʻia ka ʻōnaehana XML pono i kēlā me kēia manawa.
Hoʻohana ʻo REST (maʻamau) i kahi URL pololei ma kahi o kahi noi XML. ʻOiai he mau mea kakaikahi ke hāʻawi ʻoe i nā kikoʻī hou aku, ʻo ka hapa nui o nā lawelawe pūnaewele RESTful e hoʻohana wale i ka ʻenehana URL.
Hiki ke hoʻohana ʻia nā huaʻōlelo ʻehā HTTP 1.1 GET, POST, PUT, a me DELETE e REST e hana i nā hana. ʻAʻole like me SOAP, ʻaʻole pono ʻo REST i ka pane ma XML.
Loaʻa nā lawelawe pūnaewele REST-based e hoʻopuka ana i ka ʻikepili ma Command Separated Value (CSV), JavaScript Object Notation (JSON), a me Really Simple Syndication (RSS) formats (RSS).
ʻO ka pahuhopu e hiki iā ʻoe ke kiʻi i nā hopena āu e pono ai ma kahi ʻano maʻalahi-e-parse i loko o ka ʻōlelo āu e hoʻohana nei no kāu noi.
hiʻona
- Hoʻokumu ʻo REST i ka maʻalahi ma mua o nā mea āpau, ma muli o nā protocol HTTP.
- Ua kūpono ka pūnaewele no REST. Ua kūpono ia me nā polokalamu kele pūnaewele no ka mea ua hoʻohana ʻia ʻo JSON ma ke ʻano he ʻikepili.
- Kaulana ʻo REST no kona scalability a me ka wikiwiki.
- Hoʻohana ʻia nā pilina o nā mea kūʻai aku a me nā hale hoʻolālā e nā REST API. Inā ʻo RESTful, kūkulu ʻia me ka hoʻohana ʻana i kēia kumu hoʻohālike client-server, me nā huakaʻi pōʻai ma waena o nā ʻaoʻao ʻelua e hala ana i nā uku ʻikepili.
- Hoʻohana nā REST API i kahi kikowaena maʻamau. ʻO ka hōʻoia ʻana i ka hui like ʻana o nā polokalamu āpau a ma ka ʻīpuka hoʻokahi, e hoʻopololei i ke kamaʻilio ʻana o nā noi me ka API.
He aha ka SOAP?
ʻO kāna protocol ponoʻī, i kapa ʻia ʻo SOAP (Simple Object Access Protocol), ʻoi aku ka paʻakikī ma mua o REST mai ka mea e kuhikuhi ana i nā kūlana hou aʻe, me nā mea e pili ana i ka palekana a me ka lawe ʻana i nā leka.
Ke hele mai nei kēia mau ʻano maʻamau me kahi ʻoi aku ka nui o ke poʻo. Eia nō naʻe, hiki iā lākou ke lilo i mea koʻikoʻi no nā ʻoihana e pono ai ka palekana nui, kālepa, a me ACID (Atomicity, Consistency, Isolation, Durability) hiki ke hoʻokō.
No kēia hoʻohālikelike, he mea nui e hoʻomaopopo i ka nui o nā pono o ka SOAP ʻaʻole pili pinepine i nā noi lawelawe pūnaewele, e ʻoi aku ka kūpono no nā hiʻohiʻona ʻoihana.
ʻO nā pae kiʻekiʻe o ka palekana (e like me ka wā a kūʻai lawe mail app ka launa pū me kahi panakō), nā polokalamu leka uila e pono ai ke kamaʻilio hilinaʻi, ka launa pū ʻana me nā ʻōnaehana hoʻoilina, a i ʻole ka hoʻokō ʻana i ka ACID kekahi mau kumu āu e makemake ai e hoʻolālā i kahi noi e hoʻohana ana i kahi SOAP API.
Hoʻokumu piha ʻia nā mana memo i hāʻawi ʻia e SOAP ma XML. Ua pani ʻia nā ʻenehana like ʻole pūnaewele kahiko e like me ka Distributed Component Object Model (DCOM) a me Common Object Request Broker Architecture e SOAP i ka wā i hana mua ʻia ai e Microsoft (CORBA).
ʻO ka hilinaʻi ʻana i nā kamaʻilio binary e hāʻule ai kēia mau ʻōnaehana. Ma luna o ka pūnaewele, ʻoi aku ka maikaʻi o ka memo XML e like me ka SOAP.
hiʻona
- ʻOi aku ka paʻa o ka palekana o SOAP. ʻO WS-Security kahi maʻamau i kūkulu ʻia e hāʻawi ana i ka SOAP i nā mana palekana ʻoihana ʻoihana inā pono e hoʻohui i ke kākoʻo SSL.
- Pōmaikaʻi/hoʻāʻo hou i ka noʻonoʻo ʻana no ka hoʻokō pono ʻana i ka leka uila. No ka nele o REST i kahi memo memo maʻamau, hiki iā ia ke hoʻāʻo hou inā pau ka kamaʻilio. ʻOiai i ka hoʻohana ʻana i nā intermediates SOAP, hāʻawi ʻo SOAP i ka hilinaʻi hope-a-hope ma muli o kāna loiloi kūleʻa / hoʻāʻo hou.
- Ua hoʻokō mua ʻo SOAP i nā kūlana ACID. Ma ke kuhikuhi ʻana pehea e hiki ai i nā kālepa ke launa pū me ka waihona, ʻo ka hoʻokō ACID e hōʻemi i nā anomalies a mālama i ka kūlike o kahi waihona. No ka mea, ʻoi aku ka makaʻala o ACID ma mua o nā hiʻohiʻona kūlike ʻikepili ʻē aʻe, hoʻohana pinepine ʻia ia i ka wā e hoʻokele ai i nā hana koʻikoʻi, inā kālā a i ʻole.
- He mea maʻalahi ka hoʻomaopopo ʻana i nā polokalamu polokalamu no ka mea ʻo SOAP kahi kamaʻilio e pili ana i ka XML.
- He hoʻohui ka protocol messaging XML i ka protocol HTTP.
- Hiki ke hoʻolaha ʻia nā kamaʻilio mai kekahi kamepiula i kekahi kamepiula ma o ka leka uila SOAP.
- Hiki ke hoʻokō ʻia ka hoʻolālā Client-server. Hiki ke hoʻohana ʻia kahi memo SOAP protocol e ka mea kūʻai aku e kāhea aku i kahi kelepona kaʻina hana mamao aia ma ka ʻaoʻao kikowaena.
Hoomaha Vs Kopa Okoa
1. kuhikuhipuʻuone
Manaʻo ʻia kahi API e hōʻike mua i nā ʻāpana kikoʻī o ka loiloi ʻoihana o kahi noi ma kahi kikowaena. ʻOiai hoʻohana ʻo REST i nā URI no ke kumu like, hoʻohana ʻo SOAP i kahi Interface Service no kēia.
Hoʻokumu ʻia nā API REST ma hope o ka ʻikepili, akā hoʻomohala ʻia nā SOAP API ma hope o nā hana i hōʻike ʻia e ka API. Hoʻohālikelike ʻia me SOAP, ʻoi aku ka nui o ka hana, ʻo REST kahi hoʻolālā hoʻolālā ʻikepili.
2. Kaukaʻi
Hiki ke hoʻohana hou ʻia nā ʻikepili i hōʻailona ʻia he cacheable e nā mākaʻikaʻi me ke koi ʻole iā lākou e noi hou i ke kikowaena. ʻO ka mālama ʻana i ka manawa a me ka hoʻoikaika ʻana he pōmaikaʻi o kēia.
ʻAʻole e hūnā ʻia nā pane ma ka pae HTTP no ka mea ua hoʻouna ʻia nā nīnau SOAP ma o nā noi POST, kahi i manaʻo ʻia e ka maʻamau HTTP ʻaʻole pono. Inā makemake ʻoe e hoʻohana i ka caching, pono ʻoe e kūkulu i nā ʻenehana kūpono no ka mea ʻaʻole i hoʻokomo nā REST API i kēia hoʻokō.
3. Nā kumuwaiwai & Bandwidth
Ma muli o ka hoʻoili ʻana i ka uku hoʻoili ʻana i ka envelope i hoʻohana ʻia e SOAP, aia kahi piʻi haʻahaʻa o ka overhead, kahi e pono ai ka bandwidth hou. ʻO ke ʻano māmā o REST kahi pōmaikaʻi i kēia mau kūlana no ka mea hoʻohana maʻamau ia no nā lawelawe pūnaewele.
4. e malu ai
ʻO WS-security, ka mea i kākoʻo ʻia e SOAP a ʻoi aku ka maikaʻi ma mua o SSL ma ka pae halihali, makemake ʻia. ʻO ka hoʻokomo ʻana i nā ana palekana pae ʻoihana me ia he kūpono kūpono.
Kākoʻo ʻia ka hoʻopili ʻana i ka hopena me ka SSL e SOAP a me REST, a hiki iā REST ke hoʻohana i ka HTTPS, ka ʻano palekana o ka protocol HTTP.
5. Ka mālama ʻana i nā uku uku
ʻIke ʻia ka ʻikepili i hoʻouna ʻia ma o ka Pūnaewele ma ke ʻano he uku uku. Pono ka ukana i manaʻo ʻia he "kaumaha". Hoʻohālikelike ʻia me SOAP, e hoʻohana ana i ka XML, hoʻohana pinepine ʻo REST iā JSON a me HTTP e kōkua i ka hoʻemi ʻana i ka uku.
Pono e hoʻohana maʻamau ʻia e ka mea kūʻai aku kahi hale waihona puke kūʻai kūikawā me nā code i hana ʻia no ke komo ʻana i nā API SOAP ma muli o kā lākou ʻaelike kamaʻilio koʻikoʻi.
ʻO ka hopena, hāʻawi ʻo SOAP i kahi haʻahaʻa haʻahaʻa o ka abstraction ma mua o REST a pili pū me ke kikowaena.
I ka manawa hea e hoʻohana ai iā REST?
- Ke hana nei i nā API lehulehu: Ua makemake ʻia nā REST API no ke kūkulu ʻana i nā lawelawe pūnaewele lehulehu no ka mea ua ʻike ʻia lākou he maʻalahi ke hoʻohana a hoʻohana ʻia ma mua o nā SOAP API. Hoʻohui hou, hāʻawi ʻo SOAP i kekahi mau hana palekana i kūkulu ʻia ʻaʻole i loaʻa iā REST, ʻoiai ʻaʻole koi ʻia kēia mau hiʻohiʻona i ka wā e hana ana me ka ʻikepili wehe a me nā lawelawe.
- Ke kūkulu ʻana i nā polokalamu kelepona: He kūpono ʻo REST no ke kūkulu ʻana i nā polokalamu kelepona ʻoiai ʻo ia ka liʻiliʻi, ʻoi aku ka maikaʻi, stateless, a me ka cacheable.
- Ke hoʻohana nei i nā kumuwaiwai liʻiliʻi a me ka bandwidth: Pono ʻole nā noi a pau i kahi REST API, ʻo ia hoʻi, ua kaʻawale kēlā me kēia pilina a loaʻa i kēlā me kēia noi a me nā pane nā ʻikepili āpau e pono ai e hoʻopau i kēlā pilina. ʻAʻole mālama ke kikowaena i nā moʻolelo o nā noi mua ʻoiai ua mālama ʻo ia i kēlā me kēia me he noi hou. ʻO ka hopena, ʻoi aku ka liʻiliʻi o ka hoʻomanaʻo ʻana o ke kikowaena a ʻoi aku ka wikiwiki o ka hana no ka mea ʻaʻole pono kahi noi e hana hou a i ʻole ke kiʻi ʻana i ka ʻikepili mōʻaukala.
I ka manawa hea e hoʻohana ai i ka SOAP?
- Ke hana nei i nā API pilikino, ʻoi aku no nā ʻoihana nui: He kūpono ka SOAP no nā noi hui ʻoiai hiki iā ia ke kahe ʻikepili i loko o kahi kaiapuni decentralized, puʻunaue a loaʻa kekahi mau hiʻohiʻona palekana pūnaewele.
- Ke hoʻohana nei i kahi protocol transport ʻē aʻe ma mua o HTTP ma ke ʻano he papa lalo: ʻAʻole hilinaʻi ʻo SOAP ma HTTP ma ke ʻano o ka papa lalo. Ma muli o kāu palapala noi, hiki iā ʻoe ke hoʻohana iā SMTP (Simple Mail Transfer Protocol), JMS (Java Messaging Service), a i ʻole kekahi kaʻa kaʻa.
- Ke hana nei me nā hana kūlana: ʻAʻole like me nā noi i nā REST API, he kūlana kūlana nā noi i nā SOAP API, ʻo ia hoʻi, mālama ka server i ka ʻike e pili ana i ka mea kūʻai aku a hoʻohana iā ia ma o ke kaulahao o nā noi a i ʻole nā hana. ʻOiai ʻoiai e hoʻohana ana kēia i ka bandwidth server a me nā kumuwaiwai, he mea koʻikoʻi ia no ka hoʻokō ʻana i nā hana maʻamau a pili paha, e like me nā hoʻoili panakō.
Panina
ʻO ka hoʻohālikelike ʻana ma waena o REST a me SOAP API e hōʻike ana he ʻoi aku ka maikaʻi o REST ma mua o SOAP. Eia nō naʻe, aia nā kūlana kahi e koi ʻia ai ka SOAP API. I kekahi mau manawa, hana ʻia nā lawelawe pūnaewele ma ka hoʻohui ʻana i nā API REST a me SOAP.
No laila, e hoʻoholo ka hihia hoʻohana i ke ʻano API e hana maikaʻi loa.
Waiho i ka Reply