Koj puas xav txuas koj lub app rau Facebook kom nws tuaj yeem tsim cov ntawv tshaj tawm, lossis rau Instagram yog li koj tuaj yeem rov xa cov duab nrog qee qhov hashtags?
Koj tuaj yeem xav suav nrog YouTube yeeb yaj kiab hauv koj lub vev xaib. Application programming interfaces tso cai rau koj ua txhua yam haujlwm no thiab ntau dua (APIs).
Cov ntawv thov sib txawv tuaj yeem "hais lus" rau ib leeg hauv kev nyab xeeb thiab qauv ua tsaug rau APIs xws li Instagram API, Facebook API, thiab YouTube API.
Hauv lwm lo lus, ib qho kev pab cuam tuaj yeem nqa cov yam ntxwv lossis cov ntaub ntawv los ntawm lwm daim software thiab siv lawv los txhim kho nws tus kheej cov yam ntxwv lossis cov neeg siv kev paub. Tab sis yuav ua li cas cov apps tuaj yeem ua cov lus thov no, ua lawv, thiab teb rau lawv raws li lwm tus tuaj yeem nkag siab?
Qhov ntawd nyob ntawm seb API tau tsim li cas. Thaum sib tham txog API (application programming interface) tsim, nws yog ib txwm sib piv SOAP vs. REST, ob qho ntawm cov tseem ceeb tshaj plaws API paradigms.
Sai li SOAP APIs (Cov Khoom Siv Yooj Yim Yooj Yim) tau dhau los ua tus qauv kub rau cov tuam txhab xws li Oracle, Sun, thiab PayPal, muaj qhov sib npaug thiab cov lus teb ib xyoos lossis tom qab ntawd rau REST APIs los ntawm Google, Amazon, thiab eBay.
Hauv cov ntawv tshaj tawm no, peb yuav sib piv thiab sib piv SOAP APIs nrog REST APIs yog li koj tuaj yeem txiav txim siab qhov twg yog qhov zoo tshaj rau koj lub hom phiaj.
Peb yuav pib los ntawm kev txhais cov API.
API yog dab tsi?
Application Programming Interface yog hu ua API. APIs yog qhov tseem ceeb ntawm cov txheej txheem thiab kev ua haujlwm uas pab txhim kho cov apps. Lawv tau txais kev nkag mus rau cov ntaub ntawv thiab kev ua haujlwm ntawm cov kev pabcuam sib txawv, cov kev pabcuam, lossis cov haujlwm ua haujlwm.
Lawv ua haujlwm ua ib tus neeg nruab nrab ntawm ntau lub tshuab software. Lawv pab "hais lus" ntawm ob qhov kev pab cuam uas tsis sib txuas.
Cia peb ua piv txwv ntawm ib tus neeg muag khoom lag luam uas koom nrog kev lag luam thiab kev lag luam nyiaj txiag. Ib phau ntawm automated trading algorithms tuaj yeem txuas nrog tus tub luam nyiam kev lag luam broker platform los ntawm API. Qhov no ua rau koj, tus tub luam, ua tiav kev lag luam hluav taws xob lossis pom cov lus hais hauv lub sijhawm thiab cov ntaub ntawv nqi.
REST yog dab tsi?
Qhov tseeb "cov kev pabcuam hauv vev xaib" APIs suav nrog REST (Sawv cev Lub Xeev Hloov). REST APIs yog tsim los ntawm URIs (Uniform Resource Identifiers, ntawm qhov URL yog ib hom tshwj xeeb), HTTP raws tu qauv, thiab qhov browser-tshaj JSON cov ntaub ntawv hom ntawv zoo kawg.
SOAP raws tu qauv, raws li peb twb tau hais lawm, tej zaum kuj yuav siv tau. REST APIs tuaj yeem yooj yim tsim thiab loj hlob, tab sis lawv kuj tuaj yeem loj heev thiab nyuaj - txhua yam nyob ntawm seb lawv tsim, nthuav dav, thiab lawv xav ua dab tsi.
Kev txwv tsis pub muaj peev xwm, txo cov kev xav tau kev nyab xeeb, kev sib raug zoo ntawm tus neeg siv browser, kev tshawb pom, cov ntaub ntawv kev noj qab haus huv, thiab kev ua kom muaj zog yog qee qhov laj thawj koj xav tsim API kom RESTful - yam uas siv tau rau cov kev pabcuam hauv web.
REST muaj qhov kev xaiv hnyav dua. SOAP yog ib qho nyuaj rau siv thiab hnyav rau ntau tus neeg tsim khoom. Piv txwv li, siv SOAP nrog JavaScript yuav tsum tau sau ntau txoj cai los ua kom tiav cov haujlwm yooj yim vim qhov tsim nyog XML qauv yuav tsum tau tsim txhua zaus.
REST (feem ntau) siv qhov ncaj qha URL los ntawm qhov kev thov XML. Txawm hais tias tsis tshua muaj tshwm sim thaum koj yuav tsum muab cov ntsiab lus ntxiv, feem ntau ntawm RESTful lub vev xaib tsuas yog siv cov txheej txheem URL.
Plaub HTTP 1.1 verbs GET, POST, PUT, thiab DELETE tuaj yeem siv los ntawm REST los ua haujlwm. Tsis zoo li SOAP, REST tsis xav tau cov lus teb rau hauv XML.
REST-raws li cov kev pabcuam hauv web uas tso tawm cov ntaub ntawv hauv Command Separated Value (CSV), JavaScript Object Notation (JSON), thiab Cov Qauv Yooj Yim Yooj Yim (RSS) yog muaj (RSS).
Lub hom phiaj yog tias koj tuaj yeem tau txais cov txiaj ntsig koj xav tau hauv ib qho yooj yim-rau-parse hom nyob rau hauv hom lus koj siv rau koj daim ntawv thov.
nta
- REST hais txog qhov yooj yim tshaj txhua yam, vim yog HTTP raws tu qauv.
- Lub vev xaib zoo tshaj plaws rau REST. Nws yog sib xws nrog browsers vim JSON yog siv raws li cov ntaub ntawv hom.
- REST muaj npe nrov rau nws qhov zoo tshaj plaws scalability thiab ceev.
- Client-server kev sib txuas thiab architectures tau ua kom nkag tau yooj yim dua los ntawm REST APIs. Yog hais tias nws yog RESTful, nws yog tsim los siv tus neeg siv-neeg rau zaub mov qauv, nrog ncig ncig ntawm ob tog hla cov ntaub ntawv them nyiaj.
- REST APIs ntiav ib tus qauv kev sib txuas lus. Xyuas kom meej tias tag nrho cov apps txuas ib yam nkaus thiab dhau ntawm tib lub rooj vag, ua kom cov ntawv thov sib txuas lus nrog API.
SOAP yog dab tsi?
Nws tus kheej raws tu qauv, hu ua SOAP (Cov Khoom Siv Yooj Yim Yooj Yim Nkag Taub Hau), yog qhov nyuaj me ntsis dua li REST vim nws tau qhia ntau tus qauv, suav nrog cov cuam tshuam txog kev ruaj ntseg thiab xa xov.
Cov kev cai no muaj los nrog me ntsis ntxiv nyiaj siv ua haujlwm. Txawm li cas los xij, lawv tuaj yeem yog qhov txiav txim siab rau cov lag luam uas xav tau kev ruaj ntseg ntau dua, kev hloov pauv, thiab ACID (Atomicity, Consistency, Isolation, Durability) ua raws li kev muaj peev xwm.
Rau qhov kev sib piv no, nws tseem ceeb heev uas yuav tsum nco ntsoov tias ntau qhov txiaj ntsig ntawm SOAP tsis feem ntau siv rau cov ntawv thov kev pabcuam hauv lub vev xaib, ua rau lawv tsim nyog rau kev lag luam-hom scenarios.
Qib siab ntawm kev ruaj ntseg (xws li thaum a mobile app cuam tshuam nrog lub txhab nyiaj), kev xa xov apps uas xav tau kev sib txuas lus zoo, cuam tshuam nrog cov txheej txheem qub, lossis kev ua raws ACID yog ob peb yam uas koj xav tsim daim ntawv thov siv SOAP API.
Kev xa xov muaj peev xwm muab los ntawm SOAP yog tag nrho raws li XML. Cov thev naus laus zis hauv internet tsis sib xws xws li Distributed Component Object Model (DCOM) thiab Common Object Request Broker Architecture tau hloov los ntawm SOAP thaum nws thawj zaug tsim los ntawm Microsoft (CORBA).
Kev cia siab rau kev sib txuas lus binary ua rau cov tshuab no ua tsis tiav. Hauv internet, XML xa ntawv zoo li uas siv los ntawm SOAP ua haujlwm zoo dua.
nta
- Kev ruaj ntseg ntawm SOAP yog nruj dua. WS-Security yog tus qauv tsim uas muaj SOAP ntxiv kev lag luam qib kev ruaj ntseg yog tias xav tau ntxiv rau SSL kev txhawb nqa.
- Ua tiav / sim rov ua qhov laj thawj rau kev xa xov muaj kev ntseeg siab. Vim tias REST tsis muaj cov txheej txheem xov xwm, nws tuaj yeem rov sim dua thaum kev sib txuas lus tsis ua haujlwm. Txawm tias thaum siv SOAP intermediates, SOAP muaj qhov kawg-rau-kawg kev vam khom vim nws qhov ua tau zoo / rov ua kom tiav logic.
- SOAP twb ua raws li cov qauv ACID. Los ntawm kev txiav txim yuav ua li cas kev lag luam tuaj yeem cuam tshuam nrog cov ntaub ntawv, kev ua raws ACID txo qis qhov tsis txaus ntseeg thiab tiv thaiv qhov sib xws ntawm cov ntaub ntawv. Vim tias ACID ceev faj ntau dua li lwm cov qauv ntawm cov ntaub ntawv sib xws, nws tau siv ntau zaus thaum tswj hwm kev lag luam, txawm tias nyiaj txiag lossis lwm yam.
- Nws yog qhov yooj yim rau cov programmers kom nkag siab vim SOAP yog kev sib txuas lus XML tag nrho.
- XML messaging raws tu qauv yog ib qho ntxiv rau HTTP raws tu qauv.
- Kev sib txuas lus los ntawm ib lub khoos phis tawj mus rau lwm lub khoos phis tawj tuaj yeem nthuav tawm ntawm SOAP kev xa xov.
- Client-server architecture kuj tuaj yeem siv tau. Cov lus SOAP raws tu qauv tuaj yeem siv los ntawm tus neeg siv khoom los hu rau tus txheej txheem hu xov tooj uas nyob hauv server-sab.
REST Vs SOAP Qhov txawv
1. Kev tsim vaj tsev
Ib qho API yog tsim los qhia cov ntsiab lus tshwj xeeb ntawm kev lag luam logic ntawm daim ntawv thov ntawm lub server. Thaum REST siv URIs rau tib lub hom phiaj, SOAP ntiav Service Interface rau qhov no.
REST APIs yog tsim tom qab cov ntaub ntawv, whereas SOAP APIs yog tsim tom qab cov functionalities uas API qhia. Muab piv rau SOAP, uas yog qhov ua haujlwm ntau dua, REST yog qhov tsim cov ntaub ntawv ntau dua.
2. Caching
Cov ntaub ntawv uas tau raug cim tias cacheable tuaj yeem siv los ntawm browsers dua yam tsis tas yuav tsum tau thov tshiab rau lub server. Txuag lub sijhawm thiab kev siv zog yog qhov txiaj ntsig ntawm qhov no.
Cov lus teb yuav tsis raug cached ntawm HTTP theem txij li SOAP cov lus nug raug xa los ntawm POST kev thov, uas tus qauv HTTP pom tau tias tsis yog-tus qauv. Yog tias koj xav ntiav caching, koj yuav tsum tseem tsim cov txheej txheem tsim nyog raws li REST APIs tsis suav nrog qhov kev siv no.
3. Resources & Bandwidth
Vim lub hnab ntawv-style payload hloov pauv siv los ntawm SOAP, muaj qhov nce me me ntawm cov nyiaj siv ua haujlwm, uas yuav tsum tau siv bandwidth ntxiv. REST lub teeb pom kev zoo yog qhov txiaj ntsig hauv cov xwm txheej no vim nws feem ntau siv rau cov kev pabcuam hauv web.
4. Security
WS-kev ruaj ntseg, uas SOAP txhawb nqa thiab ua kom zoo me ntsis dua SSL ntawm qib thauj, yog qhov xav tau. Incorporating enterprise-theem kev ntsuas kev ruaj ntseg nrog nws kuj yog ib tug zoo meej haum.
Xaus-rau-kawg encryption siv SSL tau txais kev txhawb nqa los ntawm SOAP thiab REST, thiab REST tuaj yeem siv HTTPS, qhov sib txawv ruaj ntseg ntawm HTTP raws tu qauv.
5. Kev them nyiaj yug
Cov ntaub ntawv kis tau los ntawm Is Taws Nem yog hu ua payload. Lub payload uas suav tias yog "hnyav" xav tau kev pab ntxiv. Piv rau SOAP, uas siv XML, REST feem ntau siv JSON thiab HTTP los pab txo cov nqi them.
Lub tsev qiv ntawv tshwj xeeb Client nrog cov cai tsim tawm yuav tsum tau siv los ntawm Client kom nkag mus rau SOAP APIs vim lawv daim ntawv cog lus sib txuas lus nruj heev.
Raws li qhov tshwm sim, SOAP muaj qib qis dua ntawm kev paub daws teeb meem dua li REST thiab muaj kev sib raug zoo nrog cov neeg rau zaub mov.
Thaum twg siv REST?
- Tsim pej xeem APIs: REST APIs yog qhov zoo dua rau kev tsim cov kev pabcuam pej xeem hauv web vim lawv pom tias yooj yim dua rau kev siv thiab siv dua li SOAP APIs. Tsis tas li ntawd, SOAP muaj ntau qhov kev ntsuas kev ruaj ntseg uas REST tsis muaj, txawm hais tias cov yam ntxwv no tsis tas yuav tsum tau ua haujlwm nrog qhib cov ntaub ntawv thiab cov kev pabcuam.
- Tsim cov apps mobile: REST yog qhov zoo tshaj plaws rau kev tsim cov ntawv thov mobile vim nws me me, siv tau, tsis muaj xeev, thiab cacheable.
- Siv cov khoom siv tsis tshua muaj neeg rau zaub mov thiab bandwidth: Txhua qhov kev thov rau REST API yuav tsum tsis muaj lub xeev, uas txhais tau hais tias txhua qhov kev sib tham sib cais thiab txhua qhov kev thov thiab cov lus teb muaj tag nrho cov ntaub ntawv tsim nyog los ua kom tiav qhov kev sib tshuam. Tus neeg rau zaub mov tsis txuag cov ntaub ntawv ntawm kev thov yav dhau los vim nws kho txhua tus raws li qhov kev thov tshiab. Raws li qhov tshwm sim, tus neeg rau zaub mov yuav tsum tau nco tsawg dua thiab ua haujlwm sai dua vim tias qhov kev thov tsis tas yuav tsum tau ua ntxiv lossis rov muab cov ntaub ntawv keeb kwm.
Thaum twg siv SOAP?
- Tsim tus kheej APIs, tshwj xeeb tshaj yog rau cov lag luam loj: SOAP yog qhov zoo tshaj plaws rau cov ntawv thov kev lag luam vim nws ua rau cov ntaub ntawv ntws mus rau hauv ib cheeb tsam decentralized, faib thiab muaj ntau yam kev ruaj ntseg hauv online.
- Siv cov txheej txheem thauj mus los uas tsis yog HTTP raws li txheej hauv qab: SOAP tsis yog nyob ntawm HTTP raws li txheej hauv qab. Nyob ntawm koj daim ntawv thov, koj tuaj yeem siv SMTP (Simple Mail Transfer Protocol), JMS (Java Messaging Service), lossis lwm yam kev thauj mus los.
- Ua haujlwm nrog cov haujlwm tseem ceeb: Hauv kev sib piv rau kev thov rau REST APIs, kev thov rau SOAP APIs yog qhov tseem ceeb, txhais tau tias tus neeg rau zaub mov khaws cov ntaub ntawv hais txog tus neeg siv khoom thiab siv nws hla cov saw ntawm kev thov lossis kev ua haujlwm. Txawm hais tias qhov no siv ntau tus neeg rau zaub mov bandwidth thiab cov peev txheej, nws tseem ceeb heev rau kev ua haujlwm niaj hnub lossis txuas nrog, xws li kev hloov nyiaj hauv tuam txhab.
xaus
Kev sib piv ntawm REST thiab SOAP APIs ua rau nws pom tseeb tias REST yog qhov zoo dua rau SOAP. Txawm li cas los xij, muaj cov xwm txheej uas SOAP API xav tau. Hauv qee qhov xwm txheej, cov kev pabcuam hauv web yog tsim los ntawm kev sib txuas REST thiab SOAP APIs.
Yog li, cov ntaub ntawv siv yuav txiav txim siab seb API style yuav ua haujlwm zoo tshaj plaws.
Sau ntawv cia Ncua