Ĉu vi volas ligi vian apon al Facebook, por ke ĝi povu generi afiŝojn aŭtomate, aŭ al Instagram, por ke vi povu reafiŝi fotojn kun certaj hashetikedoj?
Vi ankaŭ povus deziri inkluzivi YouTube-videojn en via retejo. Aplikaj programaj interfacoj permesas vin plenumi ĉiujn ĉi tiujn taskojn kaj pli (APIoj).
Malsamaj aplikoj povas "paroli" unu al la alia en sekura kaj normigita maniero danke al API-oj kiel la Instagram API, Facebook API kaj YouTube API.
Alivorte, programo povas preni funkciojn aŭ datumojn de alia programaro kaj uzi ilin por plibonigi siajn proprajn funkciojn aŭ sperton de uzanto. Sed kiel aplikaĵoj povas fari ĉi tiujn petojn, procesi ilin kaj respondi al ili tiel, ke aliaj povas kompreni?
Tio dependas de kiel la API estis kreita. Kiam oni diskutas pri dezajnoj pri API (aplika interfaco de programado de aplikoj), estas kutime kompari SOAP kontraŭ REST, du el la plej elstaraj API-paradigmoj.
Tuj kiam SOAP-APIoj (Simple Object Access Protocol) iĝis la ora normo por firmaoj kiel Oracle, Suno kaj PayPal, estis egala kaj kontraŭa respondo unu jaron poste al REST-APIoj de Google, Amazon kaj eBay.
En ĉi tiu afiŝo, ni komparos kaj komparos SOAP-APIojn kun REST-APIoj, por ke vi povu decidi, kio estas plej bona por viaj celoj.
Ni komencos difinante la API.
Kio estas API?
Aplika Programado-Interfaco estas referita kiel API. APIoj estas esence kolekto de metodoj kaj funkcioj kiuj ebligas la disvolviĝon de programoj. Ili ricevas aliron al la informoj kaj funkcioj de malsamaj programoj, servoj aŭ operaciumoj.
Ili servas kiel ia peranto inter diversaj softvarsistemoj. Ili ebligas "paroli" inter du nekonektitaj programoj.
Ni prenu la ekzemplon de borsisto, kiu aktive okupiĝas pri komerco kaj la financaj merkatoj. Kolekto de aŭtomatigitaj komercaj algoritmoj povas esti konektita al la plej ŝatata komerca maklerista platformo de la komercisto per API. Ĉi tio ebligas al vi, la komercisto, efektivigi elektronikajn transakciojn aŭ vidi realtempajn citaĵojn kaj prezajn datumojn.
Kio estas REST?
Veraj "retservoj" API-oj inkluzivas REST (Reprezenta Ŝtata Translokigo). REST-API-oj estas konstruitaj sur URI-oj (Uniform Resource Identifiers, de kiuj URL estas speciala speco), la HTTP-protokolo kaj la nekredeble retum-kongrua JSON-datumformato.
La SOAP-protokolo, kiel ni jam diris, eble ankaŭ estos uzata. REST-APIoj povas esti facile krei kaj kreski, sed ili ankaŭ povas esti grandegaj kaj malfacilaj—ĉio dependas de kiel ili estas kreitaj, vastigitaj, kaj kion ili intencas fari.
Rimedolimoj, reduktitaj sekurecaj postuloj, retumila kliento-kongruo, malkovrebleco, datumsano kaj skaleblo estas kelkaj kialoj, kiujn vi dezirus evoluigi API por esti RESTplena—aferoj kiuj efektive validas por retservoj.
REST ofertas pli malpezan opcion. SAPO estis malfacile uzebla kaj ŝarĝa por multaj programistoj. Ekzemple, uzi SOAP kun JavaScript postulas skribi multe da kodo por plenumi simplajn operaciojn ĉar la necesa XML-strukturo devas esti kreita ĉiufoje.
REST (tipe) uzas simplan URL anstataŭ XML-peto. Kvankam estas maloftaj cirkonstancoj kiam vi devas proponi pli da detaloj, la plimulto de RESTful-retservoj nur uzas la URL-teknikon.
La kvar HTTP 1.1-verboj GET, POST, PUT kaj DELETE povas esti uzataj de REST por fari operaciojn. Male al SOAP, REST ne bezonas la respondon por esti en XML.
REST-bazitaj retservoj kiuj eligas datumojn en Command Separated Value (CSV), JavaScript Object Notation (JSON), kaj Really Simple Syndication (RSS) formatoj estas haveblaj (RSS).
La celo estas, ke vi povas akiri la rezultojn, kiujn vi bezonas en facile analizebla formato en la lingvo, kiun vi uzas por via aplikaĵo.
Trajtoj
- REST emfazas simplecon antaŭ ĉio alia, pro HTTP-protokoloj.
- La retejo plej taŭgas por REST. Ĝi estas kongrua kun retumiloj ĉar JSON estas uzata kiel la datumformato.
- REST estas fama pro ĝia elstara skaleblo kaj rapideco.
- Klient-servilaj konektoj kaj arkitekturoj fariĝas pli alireblaj per REST-APIoj. Se ĝi estas RESTful, ĝi estas konstruita uzante ĉi tiun klient-servilan modelon, kun rondveturoj inter la du partioj pasantaj datenutilajn ŝarĝojn.
- REST-APIoj utiligas solecan norman interfacon. Certigante, ke ĉiuj aplikaĵoj konektas unuforme kaj tra la sama enirejo, plifaciligas kiel aplikaĵoj komunikas kun la API.
Kio estas SAPO?
Sia propra protokolo, nomita SOAP (Simple Object Access Protocol), estas iom pli komplika ol REST, ĉar ĝi specifas pli da normoj, inkluzive de tiuj rilataj al sekureco kaj livero de mesaĝoj.
Ĉi tiuj enecaj normoj venas kun iom kroma superkosto. Tamen, ili povas esti decida faktoro por entreprenoj, kiuj bezonas pli ampleksajn sekurecajn, transakciojn, kaj ACID (Atomicity, Consistency, Isolation, Durability) plenumajn kapablojn.
Por ĉi tiu komparo, estas grave noti, ke multaj el la avantaĝoj de SOAP ne ofte validas por retservaj aplikoj, igante ilin pli taŭgaj por entrepren-specaj scenaroj.
Pli altaj gradoj de sekureco (kiel ekzemple kiam a mobile app interagas kun banko), mesaĝaj programoj, kiuj postulas fidindan komunikadon, interagado kun heredaj sistemoj aŭ ACID-konformeco estas kelkaj kialoj, kiujn vi dezirus desegni aplikaĵon uzante SOAP-API.
La mesaĝaj kapabloj ofertitaj de SOAP estas tute bazitaj sur XML. Pli malnovaj interret-malkongruaj teknologioj kiel la Distributed Component Object Model (DCOM) kaj Common Object Request Broker Architecture estis anstataŭigitaj per SAPO kiam ĝi unue estis kreita fare de Mikrosofto (CORBA).
La dependeco de binaraj komunikadoj kaŭzas ĉi tiujn sistemojn malsukcesi. Tra interreto, XML-mesaĝo kiel tiu uzata de SOAP pli bone funkcias.
Trajtoj
- La sekureco de SOAP estas signife pli strikta. WS-Security estas enkonstruita normo kiu ofertas SOAP kromajn entreprenajn sekureckapablojn se bezonate krom SSL-subteno.
- Sukcesa/reprovi rezonadon por fidinda mesaĝa rendimento. Ĉar al REST mankas normigita mesaĝmekanismo, ĝi povas nur reprovi kiam komunikado malsukcesas. Eĉ kiam vi uzas SOAP-intermediajn, SOAP ofertas fin-al-finan fidindecon pro sia enkonstruita sukcesa/reprova logiko.
- SAPO jam konformas al ACID-normoj. Diktante kiel transakcioj povas interagi kun la datumbazo, ACID-observo minimumigas anomaliojn kaj protektas la konsistencon de datumbazo. Ĉar ACID estas pli singarda ol aliaj datumkonsekvencaj modeloj, ĝi estas ofte uzata dum administrado de sentemaj transakcioj, ĉu financaj aŭ alie.
- Estas simple por programistoj kompreni ĉar SOAP estas komplete XML-bazita komunikado.
- La XML-mesaĝa protokolo estas aldono al la HTTP-protokolo.
- Komunikadoj de unu komputilo al aliaj komputiloj povas esti disvastigitaj per SOAP-mesaĝo.
- Kliento-servila arkitekturo ankaŭ povas esti efektivigita. SOAP-protokolmesaĝo povas esti uzita fare de la kliento por voki malproksiman procedalvokon kiu estas situanta servil-flanko.
REST Vs SOAP Diferencoj
1. arkitekturo
API estas celita ĉefe montri specifajn komponentojn de la komerca logiko de aplikaĵo sur servilo. Dum REST uzas URIojn por la sama celo, SOAP uzas Servan Interfacon por tio.
REST-APIoj estas kreitaj post la datenoj, dum SOAP-APIoj estas evoluigitaj post la funkcioj kiujn la API ilustras. Kompare al SOAP, kiu estas pli funkcio-movita, REST estas pli datum-movita dezajno.
2. Caching
Datumoj kiuj estis markitaj kiel kaŝmemoreblaj povas esti utiligitaj de retumiloj denove sen postulado de ili fari novan peton al la servilo. Ŝpari tempon kaj penadon estas avantaĝo de ĉi tio.
Respondoj ne estos konservitaj ĉe la HTTP-nivelo ĉar SOAP-demandoj estas senditaj per POST-petoj, kiujn la HTTP-normo opinias ne-idepotentaj. Se vi volas uzi kaŝmemoron, vi ankoraŭ devas konstrui la necesajn teknikojn ĉar REST-APIoj ne inkluzivas ĉi tiun efektivigon.
3. Rimedoj & Bandwidth
Pro la koverto-stila utilŝarĝa translokigo uzita fare de SOAP, ekzistas modesta pliiĝo en supre, kiu necesigas kroman bendolarĝon. La malpeza naturo de REST estas avantaĝo en ĉi tiuj situacioj ĉar ĝi estas ĝenerale uzata por retservoj.
4. sekureco
WS-sekureco, kiun SOAP subtenas kaj estas iomete pli ĝisfunda ol SSL ĉe la transportnivelo, estas dezirinda. Enkorpigi entrepren-nivelajn sekurecajn mezurojn kun ĝi ankaŭ estas perfekta taŭga.
Fin-al-fina ĉifrado uzanta SSL estas subtenata de kaj SOAP kaj REST, kaj REST povas uzi HTTPS, la sekuran varianton de la HTTP-protokolo.
5. Pritraktado de Utilaj Ŝargoj
Datenoj elsenditaj tra la Interreto estas referitaj kiel utila ŝarĝo. Utila ŝarĝo kiu estas konsiderata "peza" bezonas kromajn rimedojn. Kompare al SOAP, kiu uzas XML, REST ofte uzas JSON kaj HTTP por helpi malpliigi la utilan ŝarĝon.
Specialigita Kliento-biblioteko kun generita kodo devas tipe esti uzita fare de la Kliento por aliri SOAP-APIojn pro ilia ekstreme strikta komunikadokontrakto.
Kiel rezulto, SOAP ofertas pli malgrandan nivelon de abstraktado ol REST kaj estas pli proksime ligita kun la servilo.
Kiam uzi REST?
- Kreante publikajn APIojn: REST-API-oj estas preferataj por konstrui publikajn retservojn ĉar ili estas pli simple uzeblaj kaj adopteblaj ol SOAP-APIoj. Aldone, SOAP ofertas plurajn enkonstruitajn sekurecajn mezurojn, kiujn REST ne havas, kvankam ĉi tiuj trajtoj ne estas postulataj kiam oni laboras kun malfermaj datumoj kaj servoj.
- Konstruante poŝtelefonajn programojn: REST estas perfekta por konstrui poŝtelefonajn aplikojn ĉar ĝi estas malgranda, efika, sennacia kaj kaŝmemorebla.
- Utiligante malabundajn servilresursojn kaj larĝan bandon: Ĉiuj petoj al REST-API devas esti sennacia, kio signifas, ke ĉiu interagado estas aparta kaj ĉiu peto kaj respondo enhavas ĉiujn datumojn necesajn por kompletigi tiun interagon. La servilo ne konservas registrojn de antaŭaj petoj ĉar ĝi traktas ĉiun kiel freŝan peton. Kiel rezulto, la servilo postulas multe malpli da memoro kaj funkcias pli rapide ĉar peto ne postulas plian agon aŭ la reakiron de historiaj datenoj.
Kiam uzi SAPON?
- Krei privatajn APIojn, precipe por grandaj entreprenoj: SOAP estas perfekta por kompaniaj aplikoj ĉar ĝi ebligas datumfluon en malcentralizita, distribuita medio kaj enhavas plurajn retajn sekurecajn funkciojn.
- Uzante transportprotokolon krom HTTP kiel la suba tavolo: SAPO ne dependas de HTTP kiel la suba tavolo. Depende de via aplikaĵo, vi povus uzi SMTP (Simple Mail Transfer Protocol), JMS (Java Messaging Service), aŭ alian transportprotokolon.
- Laborante kun ŝtataj operacioj: Kontraste al petoj al REST-APIoj, petoj al SOAP-APIoj estas laŭtaj, tio signifas, ke la servilo konservas informojn pri la kliento kaj uzas ĝin tra ĉeno de petoj aŭ operacioj. Eĉ dum ĉi tio uzas pli da servila bendolarĝo kaj rimedoj, ĝi estas decida por efektivigi rutinajn aŭ ligitajn agojn, kiel banktranspagojn.
konkludo
La komparo inter REST kaj SOAP-API-oj evidentigas, ke REST estas preferinda ol SOAP. Eĉ tamen, ekzistas situacioj kie SOAP API estas postulata. En certaj kazoj, retservoj estas kreitaj kombinante REST kaj SOAP-APIojn.
Tial, la uzkazo determinos kiu API-stilo funkcios plej bone.
Lasi Respondon