Мазмуну[Жашыруу][Көрсөтүү]
Колдонмоңузду автоматтык түрдө постторду жаратышы үчүн Facebook менен байланыштыргыңыз келеби же белгилүү хэштегдер менен сүрөттөрдү репост кылуу үчүн Instagramга?
Сиз ошондой эле веб-сайтыңызга YouTube видеолорун кошсоңуз болот. Колдонмо программалоо интерфейстери бул тапшырмалардын баарын жана башкаларды (API) аткарууга мүмкүндүк берет.
Instagram API, Facebook API жана YouTube API сыяктуу API'лердин аркасында ар кандай колдонмолор коопсуз жана стандартташтырылган түрдө бири-бири менен "сүйлөй алышат".
Башка сөз менен айтканда, программа башка программалык камсыздоодон функцияларды же маалыматтарды алып, аларды өзүнүн өзгөчөлүктөрүн же колдонуучу тажрыйбасын жакшыртуу үчүн колдоно алат. Бирок колдонмолор бул суроо-талаптарды кантип жасап, аларды иштеп чыгып, башкалар түшүнө тургандай жооп бере алат?
Бул API кантип түзүлгөнүнө жараша болот. API (колдонмо программалоо интерфейси) долбоорлорун талкуулоодо, адаттагыдай эле SOAP менен RESTти салыштыруу, эң көрүнүктүү API парадигмаларынын экөөсү.
SOAP API'лери (Жөнөкөй Object Access Protocol) Oracle, Sun жана PayPal сыяктуу фирмалар үчүн алтын стандартка айлангандан кийин, бир жылдан кийин Google, Amazon жана eBay REST API'лерине бирдей жана карама-каршы жооп болду.
Бул постто биз SOAP API'лерин REST API'лери менен салыштырып, карама-каршы коёбуз, ошондо сиз өз максаттарыңыз үчүн кайсынысы эң жакшы экенин чече аласыз.
Биз API аныктоо менен баштайбыз.
API деген эмне?
Колдонмо программалоо интерфейси API деп аталат. API'лер негизинен колдонмолорду иштеп чыгууга мүмкүндүк берүүчү ыкмалардын жана функциялардын жыйындысы. Алар ар кандай программалардын, кызматтардын же операциялык системалардын маалыматына жана функцияларына мүмкүнчүлүк алышат.
Алар ар кандай программалык камсыздоо системаларынын ортосунда ортомчу катары кызмат кылат. Алар эки байланышы жок программалардын ортосунда "сүйлөшүүгө" мүмкүнчүлүк берет.
Соодага жана каржы рынокторуна активдүү катышкан биржа брокерин мисалга алалы. Автоматташтырылган жыйнак соода алгоритмдери API аркылуу соодагердин сүйүктүү соода брокердик платформасына туташа алат. Бул сизге, соодагерге электрондук транзакцияларды жүргүзүүгө же реалдуу убакыт режиминде цитаталарды жана баа маалыматтарын көрүүгө мүмкүндүк берет.
REST деген эмне?
Чыныгы "веб кызматтары" API'лери REST (Өкүлчүлүк мамлекеттик өткөрүп берүү) камтыйт. REST API'лери URI (Бирдиктүү ресурс идентификаторлору, алардын URL өзгөчө түрү), HTTP протоколуна жана серепчиге укмуштуудай шайкеш келген JSON маалымат форматына курулган.
SOAP протоколу, биз буга чейин айтылгандай, ошондой эле колдонулушу мүмкүн. REST APIлерди түзүү жана өстүрүү оңой, бирок алар абдан чоң жана кыйын болушу мүмкүн — мунун баары алардын кантип түзүлгөнүнө, кеңейтилгенине жана эмне кылууну көздөгөнүнө жараша болот.
Ресурстук чектөөлөр, коопсуздуктун төмөндөтүлгөн талаптары, браузердин кардар шайкештиги, табыла тургандыгы, берилиштердин ден соолугу жана масштабдуулугу RESTful болушу үчүн API иштеп чыгууну каалаган себептерден болуп саналат.
REST жеңилирээк вариантты сунуштайт. САМЫН колдонуу кыйын жана көптөгөн иштеп чыгуучулар үчүн түйшүктүү болгон. Мисалы, JavaScript менен SOAP колдонуу жөнөкөй операцияларды аяктоо үчүн көп кодду жазууну талап кылат, анткени зарыл болгон XML структурасы ар бир жолу түзүлүшү керек.
REST (адатта) XML сурамынын ордуна түз URL колдонот. Көбүрөөк маалымат сунуштай турган сейрек жагдайлар болсо да, RESTful веб кызматтарынын көпчүлүгү URL ыкмасын гана колдонушат.
Төрт HTTP 1.1 этиштери GET, POST, PUT жана DELETE REST тарабынан операцияларды аткаруу үчүн колдонулушу мүмкүн. SOAPдан айырмаланып, REST жооптун XMLде болушуна муктаж эмес.
Command Separated Value (CSV), JavaScript Object Notation (JSON) жана Really Simple Syndication (RSS) форматтарында маалыматтарды чыгарган REST негизиндеги веб кызматтары жеткиликтүү (RSS).
Максаты - сиз керектүү натыйжаларды колдонууңуз үчүн колдонуп жаткан тилде талданууга оңой форматта ала аласыз.
Өзгөчөлүктөрү
- REST HTTP протоколдорунун аркасында баарынан мурда жөнөкөйлүктү баса белгилейт.
- Интернет REST үчүн эң ылайыктуу. Ал браузерлерге шайкеш келет, анткени JSON маалымат форматы катары колдонулат.
- REST өзүнүн эң сонун масштабдуулугу жана ылдамдыгы менен белгилүү.
- Кардар-сервер байланыштары жана архитектуралары REST API'лери аркылуу жеткиликтүүрөөк болот. Эгерде ал RESTful болсо, анда бул кардар-сервер модели аркылуу түзүлөт, эки тараптын ортосундагы тегерек сапарлар маалымат жүктөрүн өткөрүп берет.
- REST API'лери жалгыз стандарттуу интерфейсти колдонушат. Бардык колдонмолор бир калыпта жана бир шлюз аркылуу туташып турушун камсыз кылуу, колдонмолордун API менен байланышын тартипке келтирет.
САМЫН деген эмне?
SOAP (Simple Object Access Protocol) деп аталган өзүнүн протоколу RESTге караганда бир аз татаалыраак, анткени ал көбүрөөк стандарттарды, анын ичинде коопсуздук жана билдирүүлөрдү жеткирүү менен байланышкан стандарттарды аныктайт.
Бул мүнөздүү нормалар бир аз кошумча чыгымдар менен келет. Бирок, алар коопсуздукту, транзакцияны жана ACID (атомдуулук, ырааттуулук, изоляция, туруктуулук) шайкештик мүмкүнчүлүктөрүн талап кылган ишканалар үчүн чечүүчү фактор боло алат.
Бул салыштыруу үчүн, SOAPтын көптөгөн артыкчылыктары веб-кызмат тиркемелерине көп колдонулбагандыгын белгилей кетүү маанилүү, бул аларды ишкана тибиндеги сценарийлерге ылайыктуу кылат.
Коопсуздуктун жогорку даражалары (мисалы, а мобилдик колдонмо банк менен өз ара аракеттенет), ишенимдүү байланышты талап кылган билдирүү жазышуу колдонмолору, эски тутумдар менен иштешүү же ACID ылайыктуулугу SOAP API аркылуу тиркемени иштеп чыгууну каалаган бир нече себептер.
SOAP сунуш кылган билдирүү мүмкүнчүлүктөрү толугу менен XMLге негизделген. Бөлүштүрүлгөн компоненттин объектисинин модели (DCOM) жана Common Object Request Broker Architecture сыяктуу интернетке шайкеш келбеген эски технологиялар Microsoft (CORBA) тарабынан биринчи жолу түзүлгөндө SOAP менен алмаштырылган.
Бинардык байланыштарга таянуу бул системалардын иштебей калышына алып келет. Интернет аркылуу SOAP колдонгон XML билдирүүлөрү жакшыраак иштейт.
Өзгөчөлүктөрү
- САМЫНдын коопсуздугу кыйла катуураак. WS-Security - бул SSL колдоосуна кошумча керек болсо, SOAP кошумча ишкана деңгээлиндеги коопсуздук мүмкүнчүлүктөрүн сунуш кылган орнотулган стандарт.
- Ишенимдүү билдирүүлөрдү аткаруу үчүн ой жүгүртүү ийгиликтүү/кайра аракет кылуу. REST стандартташтырылган билдирүү механизми жок болгондуктан, ал байланыш үзүлгөндө гана кайталай алат. SOAP интермедиатын колдонгондо да, SOAP ийгиликтүү/кайра аракет кылуу логикасына байланыштуу аягына чейин ишенимдүүлүктү сунуштайт.
- САМЫН мурунтан эле ACID стандарттарына ылайык келет. Транзакциялар маалымат базасы менен кантип өз ара аракеттене аларын айтуу менен, ACID ылайыктуулугу аномалияларды азайтат жана маалымат базасынын ырааттуулугун коргойт. ACID башка маалыматтар ырааттуулугу моделдерине караганда этият болгондуктан, ал каржылык же башка маанидеги транзакцияларды башкарууда көп колдонулат.
- SOAP толугу менен XMLге негизделген байланыш болгондуктан, программисттер үчүн түшүнүү оңой.
- XML билдирүү протоколу HTTP протоколуна кошумча болуп саналат.
- Бир компьютерден экинчи компьютерге болгон байланыш SOAP билдирүүлөрү аркылуу таралышы мүмкүн.
- Кардар-сервер архитектурасы да ишке ашырылышы мүмкүн. SOAP протоколунун билдирүүсү кардар тарабынан сервер тарабында жайгашкан алыскы процедураны чакыруу үчүн колдонулушу мүмкүн.
REST Vs САМЫН айырмачылыктары
1. архитектура
API биринчи кезекте сервердеги тиркеменин бизнес логикасынын конкреттүү компоненттерин көрсөтүү үчүн арналган. REST ошол эле максатта URIларды колдонот, ал эми SOAP бул үчүн Кызмат интерфейсин колдонот.
REST API'лери маалыматтардан кийин түзүлөт, ал эми SOAP API'лери API сүрөттөгөн функциялардан кийин иштелип чыгат. Көбүрөөк функцияга негизделген SOAP менен салыштырганда, REST көбүрөөк маалыматка негизделген дизайн.
2. кештөө
Кэштелуучу катары белгиленген маалыматтар серверге жаңы суроо талап кылбастан, браузерлер тарабынан кайра колдонулушу мүмкүн. Убакытты жана күчтү үнөмдөө - мунун пайдасы.
Жооптор HTTP деңгээлинде кэштелбейт, анткени SOAP сурамдары HTTP стандарты идемпотент эмес деп эсептеген POST сурамдары аркылуу жөнөтүлөт. Эгерде сиз кэштешин колдонгуңуз келсе, анда дагы эле керектүү ыкмаларды түзүшүңүз керек, анткени REST API'лери бул ишке ашырууну камтыбайт.
3. Ресурстар жана өткөрүү жөндөмдүүлүгү
SOAP колдонгон конверт стилиндеги пайдалуу жүктү өткөрүп берүүдөн улам, кошумча чыгымдардын бир аз өсүшү байкалат, бул кошумча өткөрүү жөндөмдүүлүгүн талап кылат. RESTтин жеңил мүнөзү бул жагдайларда артыкчылык болуп саналат, анткени ал көбүнчө веб кызматтар үчүн колдонулат.
4. коопсуздук
WS-коопсуздугу, SOAP колдогон жана транспорт деңгээлинде SSLге караганда бир аз кылдатыраак. Аны менен бирге ишкана деңгээлиндеги коопсуздук чаралары да эң сонун ылайыктуу.
SSL аркылуу акырына чейин шифрлөө SOAP жана REST тарабынан колдоого алынат, ал эми REST HTTPS протоколун, HTTP протоколунун коопсуз вариантын колдоно алат.
5. Пайдалуу жүктөрдү иштетүү
Интернет аркылуу берилүүчү маалымат пайдалуу жүк деп аталат. "Оор" деп эсептелген пайдалуу жүк кошумча ресурстарды талап кылат. XMLди колдонгон SOAP менен салыштырганда, REST көбүнчө JSON жана HTTP жүктөмүн азайтууга жардам берет.
Түзүлгөн коду бар адистештирилген Кардар китепканасы, эреже катары, SOAP API'лерине кирүү үчүн Кардар тарабынан колдонулушу керек, анткени алардын өтө катаал байланыш келишими бар.
Натыйжада, SOAP RESTге караганда абстракциянын азыраак деңгээлин сунуштайт жана сервер менен тыгыз байланышта.
RESTти качан колдонуу керек?
- Коомдук API түзүү: REST API'лери коомдук желе кызматтарын куруу үчүн артыкчылыктуу, анткени алар SOAP API'лерине караганда колдонууга жана кабыл алууга жеңилирээк. Кошумчалай кетсек, SOAP RESTте жок бир нече орнотулган коопсуздук чараларын сунуштайт, бирок ачык маалыматтар жана кызматтар менен иштөөдө бул мүнөздөмөлөр талап кылынбайт.
- Мобилдик колдонмолорду түзүү: REST мобилдик тиркемелерди куруу үчүн идеалдуу, анткени ал кичинекей, эффективдүү, жарандыгы жок жана кэште сакталган.
- Жетишсиз сервер ресурстарын жана өткөрүү жөндөмдүүлүгүн колдонуу: REST API'ге болгон бардык суроо-талаптар жарандыгы жок болушу керек, башкача айтканда, ар бир өз ара аракеттенүү өзүнчө жана ар бир суроо менен жооп ошол аракеттешүүнү аяктоо үчүн зарыл болгон бардык маалыматтарды камтыйт. Сервер мурунку сурамдардын жазууларын сактабайт, анткени ал ар бирине жаңы суроо катары мамиле кылат. Натыйжада, сервер алда канча азыраак эстутумду талап кылат жана тезирээк иштейт, анткени суроо-талап кийинки аракеттерди же тарыхый маалыматтарды издөөнү талап кылбайт.
САМЫН качан колдонуу керек?
- Жеке API'лерди түзүү, айрыкча ири бизнес үчүн: SOAP корпоративдик тиркемелер үчүн идеалдуу, анткени ал борбордон ажыратылган, бөлүштүрүлгөн чөйрөдө маалымат агымын камсыз кылат жана бир нече онлайн коопсуздук функцияларын камтыйт.
- Негизги катмар катары HTTP'ден башка транспорттук протоколду колдонуу: SOAP негизги катмар катары HTTP көз каранды эмес. Колдонмоңузга жараша, сиз SMTP (Жөнөкөй почта өткөрүп берүү протоколу), JMS (Java Messaging Service) же башка транспорттук протоколду колдонсоңуз болот.
- Мамлекеттик операциялар менен иштөө: REST API'лерине болгон суроо-талаптардан айырмаланып, SOAP API'лерине болгон суроо-талаптар статуска ээ, башкача айтканда сервер кардар тууралуу маалыматты сактап, аны сурамдардын же операциялардын тизмеги боюнча колдонот. Бул сервердин өткөрүү жөндөмдүүлүгүн жана ресурстарын көбүрөөк колдонсо дагы, банктык которуулар сыяктуу күнүмдүк же байланышкан иш-аракеттерди аткаруу үчүн абдан маанилүү.
жыйынтыктоо
REST жана SOAP API ортосундагы салыштыруу REST SOAPга караганда жакшыраак экенин көрсөтүп турат. Ал тургай, SOAP API талап кылынган жагдайлар бар. Кээ бир учурларда, желе кызматтары REST жана SOAP API'лерин айкалыштыруу аркылуу түзүлөт.
Ошондуктан, колдонуу жагдайы кайсы API стили эң жакшы иштей турганын аныктайт.
Таштап Жооп