Viltu tengja appið þitt við Facebook svo það geti búið til færslur sjálfkrafa, eða við Instagram svo þú getir endurbirt myndir með ákveðnum hashtags?
Þú gætir líka viljað láta YouTube myndbönd fylgja með á vefsíðunni þinni. Forritunarviðmót gerir þér kleift að framkvæma öll þessi verkefni og fleira (API).
Mismunandi forrit geta „talað“ hvert við annað á öruggan og staðlaðan hátt þökk sé API eins og Instagram API, Facebook API og YouTube API.
Með öðrum orðum, forrit getur tekið eiginleika eða gögn úr öðrum hugbúnaði og notað þá til að bæta eigin eiginleika eða notendaupplifun. En hvernig geta forrit gert þessar beiðnir, unnið úr þeim og brugðist við þeim á þann hátt sem aðrir geta skilið?
Það fer eftir því hvernig API var búið til. Þegar rætt er um API (application programming interface) hönnun, er venjulega að bera saman SOAP á móti REST, tveimur af mest áberandi API hugmyndum.
Um leið og SOAP API (Simple Object Access Protocol) varð gulls ígildi fyrir fyrirtæki eins og Oracle, Sun og PayPal, var jafn og öfugt svar ári eða svo síðar gagnvart REST API frá Google, Amazon og eBay.
Í þessari færslu munum við bera saman og bera saman SOAP API við REST API svo þú getir ákveðið hver er best fyrir tilgang þinn.
Við byrjum á því að skilgreina API.
Hvað er API?
Forritaviðmót er vísað til sem API. API eru í meginatriðum safn aðferða og aðgerða sem gera kleift að þróa forrit. Þeir fá aðgang að upplýsingum og aðgerðum mismunandi forrita, þjónustu eða stýrikerfa.
Þeir þjóna sem eins konar milliliður milli ýmissa hugbúnaðarkerfa. Þeir gera kleift að „tala“ á milli tveggja ótengdra forrita.
Tökum sem dæmi verðbréfamiðlara sem tekur virkan þátt í viðskiptum og fjármálamörkuðum. Safn af sjálfvirkum viðskiptaalgrím hægt að tengja við uppáhaldsviðskiptamiðlara vettvang kaupmannsins í gegnum API. Þetta gerir þér, kaupmanni, kleift að framkvæma rafræn viðskipti eða sjá rauntímatilboð og verðupplýsingar.
Hvað er REST?
Sönn „vefþjónusta“ API innihalda REST (Representational State Transfer). REST API eru byggð á URI (Uniform Resource Identifiers, þar sem vefslóð er sérstök tegund), HTTP samskiptareglum og ótrúlega vafrasamhæfu JSON gagnasniði.
SOAP siðareglur, eins og við höfum þegar sagt, gæti hugsanlega verið notað. REST API getur verið auðvelt að búa til og vaxa, en þau geta líka verið gríðarleg og erfið - það fer allt eftir því hvernig þau eru búin til, stækkuð og hvað þeim er ætlað að gera.
Tilfangatakmarkanir, minni öryggiskröfur, samhæfni vafrabiðlara, uppgötvun, gagnaheilbrigði og sveigjanleiki eru nokkrar ástæður fyrir því að þú myndir vilja þróa API til að vera RESTful - hlutir sem eiga í raun við um vefþjónustu.
REST býður upp á léttari valkost. SÁPA var erfið í notkun og íþyngjandi fyrir marga forritara. Til dæmis, að nota SOAP með JavaScript krefst þess að skrifa mikið af kóða til að klára einfaldar aðgerðir þar sem nauðsynleg XML uppbygging verður að búa til í hvert skipti.
REST (venjulega) notar einfalda slóð í stað XML beiðni. Þó að það séu sjaldgæfar aðstæður þar sem þú verður að veita frekari upplýsingar, þá notar meirihluti RESTful vefþjónustunnar aðeins vefslóðatæknina.
Fjórar HTTP 1.1 sagnirnar GET, POST, PUT og DELETE geta REST notað til að framkvæma aðgerðir. Ólíkt SOAP þarf REST ekki að svarið sé í XML.
REST-undirstaða vefþjónusta sem gefur út gögn í Command Separated Value (CSV), JavaScript Object Notation (JSON) og Really Simple Syndication (RSS) sniðum eru fáanlegar (RSS).
Markmiðið er að þú getir fengið þær niðurstöður sem þú þarft á sniði sem auðvelt er að flokka á því tungumáli sem þú notar fyrir forritið þitt.
Aðstaða
- REST leggur áherslu á einfaldleika umfram allt, vegna HTTP samskiptareglna.
- Vefurinn hentar best fyrir REST. Það er samhæft við vafra vegna þess að JSON er notað sem gagnasnið.
- REST er þekkt fyrir framúrskarandi sveigjanleika og hraða.
- Biðlara-miðlara tengingar og arkitektúr eru gerð aðgengilegri með REST API. Ef það er RESTful, það er smíðað með því að nota þetta biðlara-miðlara líkan, með hringferðum milli tveggja aðila sem fara framhjá gagnahleðslum.
- REST API nota eintómt staðlað viðmót. Með því að tryggja að öll forrit tengist einsleitt og í gegnum sömu gáttina, hagræða hvernig forrit eiga í samskiptum við API.
Hvað er SÁPA?
Eigin siðareglur, sem kallast SOAP (Simple Object Access Protocol), er aðeins flóknari en REST þar sem hún tilgreinir fleiri staðla, þar á meðal þá sem tengjast öryggi og sendingu skilaboða.
Þessum eðlislægu viðmiðum fylgir smá aukakostnaður. Hins vegar geta þau verið afgerandi þáttur fyrir fyrirtæki sem þurfa víðtækari öryggi, viðskipti og ACID (Atomicity, Consistency, Isolation, Durability) samræmisgetu.
Í þágu þessa samanburðar er mikilvægt að hafa í huga að margir kostir SOAP eiga ekki oft við um vefþjónustuforrit, sem gerir þær hentugri fyrir atburðarás fyrirtækja.
Hærra öryggisstig (eins og þegar a Mobile app hefur samskipti við banka), skilaboðaforrit sem krefjast áreiðanlegra samskipta, samskipti við eldri kerfi eða ACID samræmi eru nokkrar ástæður fyrir því að þú myndir vilja hanna forrit sem notar SOAP API.
Skilaboðagetuleikarnir sem SOAP býður upp á eru algjörlega byggðir á XML. Eldri internet-ósamhæfðri tækni eins og DCOM (Distributed Component Object Model) og Common Object Request Broker Architecture var skipt út fyrir SOAP þegar það var fyrst búið til af Microsoft (CORBA).
Að treysta á tvöfalda fjarskipti veldur því að þessi kerfi mistakast. Á netinu virka XML skilaboð eins og sú sem SOAP notar betur.
Aðstaða
- Öryggi SOAP er verulega þéttara. WS-Security er innbyggður staðall sem býður upp á SOAP viðbótaröryggisgetu á fyrirtækisstigi ef þörf krefur til viðbótar við SSL stuðning.
- Vel heppnuð/reyna rökstuðning fyrir áreiðanlegum skilaboðum. Vegna þess að REST skortir staðlaðan skilaboðabúnað getur það aðeins reynt aftur þegar samskipti mistekst. Jafnvel þegar SOAP milliefni er notað, býður SOAP upp á áreiðanleika frá enda til enda vegna innbyggðrar rökfræði sem tókst/reyna aftur.
- SÁPA er nú þegar í samræmi við ACID staðla. Með því að fyrirskipa hvernig viðskipti geta haft samskipti við gagnagrunninn, lágmarkar ACID samræmi frávik og tryggir samræmi gagnagrunns. Vegna þess að ACID er varkárari en önnur gagnasamkvæmnilíkön, er það oft notað við stjórnun viðkvæmra viðskipta, hvort sem það er fjárhagslegt eða annað.
- Það er einfalt fyrir forritara að skilja þar sem SOAP er algerlega XML byggð samskipti.
- XML skilaboðasamskiptareglur eru viðbót við HTTP samskiptareglur.
- Samskiptum frá einni tölvu til annarrar tölvu er hægt að dreifa með SOAP skilaboðum.
- Einnig er hægt að útfæra arkitektúr viðskiptavina-miðlara. Viðskiptavinurinn getur notað SOAP samskiptaregluskilaboð til að hringja í ytra verklagssímtal sem er staðsett við miðlara.
Munur á hvíld og sápu
1. Arkitektúr
API er fyrst og fremst ætlað að sýna sérstaka hluti af viðskiptarökfræði forrits á netþjóni. Þó REST noti URI í sama tilgangi notar SOAP þjónustuviðmót fyrir þetta.
REST API eru búin til eftir gögnin, en SOAP API eru þróuð eftir virkni sem API sýnir. Í samanburði við SOAP, sem er meira aðgerðardrifið, er REST gagnadrifin hönnun.
2. Caching
Gögn sem hafa verið merkt sem skyndiminni geta verið nýtt af vöfrum aftur án þess að þeir þurfi að senda nýja beiðni til netþjónsins. Að spara tíma og fyrirhöfn er ávinningur af þessu.
Svör verða ekki vistuð í skyndiminni á HTTP-stigi þar sem SOAP fyrirspurnir eru sendar í gegnum POST beiðnir, sem HTTP staðallinn telur ekki vanhæfa. Ef þú vilt nota skyndiminni verður þú samt að byggja upp nauðsynlega tækni þar sem REST API innihalda ekki þessa útfærslu.
3. Auðlindir og bandbreidd
Vegna hleðsluflutnings í umslagsstíl sem SOAP notar, er hófleg aukning á kostnaði, sem krefst aukinnar bandbreiddar. Létt eðli REST er ávinningur við þessar aðstæður vegna þess að það er almennt notað fyrir vefþjónustu.
4. Öryggi
WS-öryggi, sem SOAP styður og er aðeins ítarlegra en SSL á flutningsstigi, er æskilegt. Að fella öryggisráðstafanir á fyrirtækisstigi við það passar líka fullkomlega.
Dulkóðun frá enda til enda með SSL er studd af bæði SOAP og REST og REST getur notað HTTPS, örugga afbrigði HTTP samskiptareglunnar.
5. Meðhöndlun farms
Gögn sem send eru í gegnum internetið eru kölluð farm. Burðarmassi sem er talinn „þungur“ þarf viðbótarúrræði. Í samanburði við SOAP, sem notar XML, notar REST oft JSON og HTTP til að aðstoða við að draga úr hleðslu.
Viðskiptavinurinn þarf venjulega að nota sérhæft viðskiptavinabókasafn með myndaðan kóða til að fá aðgang að SOAP API vegna afar strangs samskiptasamnings.
Fyrir vikið býður SOAP upp á minna abstraktstig en REST og er nánar tengt við netþjóninn.
Hvenær á að nota REST?
- Að búa til opinber API: REST API eru valin til að byggja upp opinbera vefþjónustu vegna þess að þau eru einfaldari í notkun og samþykkja en SOAP API. Að auki býður SOAP upp á nokkrar innbyggðar öryggisráðstafanir sem REST hefur ekki, þó að þessir eiginleikar séu ekki nauðsynlegir þegar unnið er með opin gögn og þjónustu.
- Að smíða farsímaforrit: REST er fullkomið til að byggja upp farsímaforrit þar sem það er lítið, áhrifaríkt, ríkisfangslaust og skyndiminni.
- Notar af skornum skammti miðlaraauðlindum og bandbreidd: Allar beiðnir að REST API verða að vera ríkisfangslausar, sem þýðir að hver víxlverkun er aðskilin og hver beiðni og svar inniheldur öll nauðsynleg gögn til að ljúka þeirri víxlverkun. Þjónninn vistar ekki skrár yfir fyrri beiðnir þar sem hann meðhöndlar hverja og eina sem nýja beiðni. Þar af leiðandi þarf þjónninn mun minna minni og starfar hraðar vegna þess að beiðni krefst ekki frekari aðgerða eða endurheimtar sögulegra gagna.
Hvenær á að nota SÁPA?
- Að búa til einka API, sérstaklega fyrir stór fyrirtæki: SOAP er fullkomin fyrir fyrirtækjaforrit þar sem hún gerir gagnaflæði kleift í dreifðu, dreifðu umhverfi og inniheldur nokkra öryggiseiginleika á netinu.
- Að nota aðra flutningssamskiptareglu en HTTP sem undirliggjandi lag: SÁPA er ekki háð HTTP sem undirliggjandi lag. Það fer eftir forritinu þínu, þú gætir notað SMTP (Simple Mail Transfer Protocol), JMS (Java Messaging Service) eða aðra flutningssamskiptareglu.
- Unnið með staðgóðan rekstur: Öfugt við beiðnir um REST API eru beiðnir um SOAP API staðbundnar, sem þýðir að þjónninn vistar upplýsingar um viðskiptavininn og notar þær í gegnum keðju beiðna eða aðgerða. Jafnvel þó að þetta noti meiri bandbreidd og tilföng netþjóns, þá er það mikilvægt til að framkvæma venjubundnar eða tengdar aðgerðir, eins og millifærslur.
Niðurstaða
Samanburðurinn á milli REST og SOAP API gerir það alveg ljóst að REST er æskilegra en SOAP. Jafnvel enn, það eru aðstæður þar sem SOAP API er krafist. Í vissum tilfellum eru vefþjónustur búnar til með því að sameina REST og SOAP API.
Þess vegna mun notkunartilvikið ákvarða hvaða API stíll mun virka best.
Skildu eftir skilaboð