Мазмұны[Жасыру][Көрсету]
Жазбаларды автоматты түрде жасай алатындай етіп қолданбаңызды Facebook-ке немесе белгілі бір хэштегтермен фотосуреттерді қайта жариялау үшін Instagram-ға байланыстырғыңыз келе ме?
Сондай-ақ веб-сайтыңызға YouTube бейнелерін қосқыңыз келуі мүмкін. Қолданбалы бағдарламалау интерфейстері осы тапсырмалардың барлығын және басқаларын (API) орындауға мүмкіндік береді.
Instagram API, Facebook API және YouTube API сияқты API интерфейстерінің арқасында әртүрлі қолданбалар бір-бірімен қауіпсіз және стандартталған түрде «сөйлей алады».
Басқаша айтқанда, бағдарлама басқа бағдарламалық құрал бөлігінен мүмкіндіктерді немесе деректерді алып, оларды өзінің мүмкіндіктерін немесе пайдаланушы тәжірибесін жақсарту үшін пайдалана алады. Бірақ қолданбалар бұл сұрауларды қалай жасай алады, оларды өңдей алады және оларға басқалар түсінетіндей жауап бере алады?
Бұл API қалай жасалғанына байланысты. API (бағдарламалық бағдарламалау интерфейсі) дизайндарын талқылағанда, әдетте SOAP пен REST, ең көрнекті API парадигмаларының екеуін салыстыру керек.
SOAP API интерфейстері (қарапайым нысанға қол жеткізу протоколы) Oracle, Sun және PayPal сияқты фирмалар үшін алтын стандартқа айналғаннан кейін Google, Amazon және eBay REST API интерфейстеріне бір жылдан кейін немесе одан да көп уақыт өткен соң бірдей және қарама-қарсы жауап болды.
Бұл постта біз SOAP API интерфейстерін REST API интерфейстерімен салыстырамыз және олардың қайсысы өз мақсаттарыңызға сәйкес келетінін шеше аласыз.
Біз API интерфейсін анықтаудан бастаймыз.
API дегеніміз не?
Қолданбалы бағдарламалау интерфейсі API деп аталады. API - бұл қолданбаларды әзірлеуге мүмкіндік беретін әдістер мен функциялардың жиынтығы. Олар әртүрлі бағдарламалардың, қызметтердің немесе операциялық жүйелердің ақпараты мен функцияларына қол жеткізе алады.
Олар әртүрлі бағдарламалық жүйелер арасында делдал ретінде қызмет етеді. Олар қосылмаған екі бағдарлама арасында «сөйлесуге» мүмкіндік береді.
Сауда мен қаржы нарығына белсенді араласатын биржалық брокерді мысалға алайық. Автоматтандырылған жинақ сауда алгоритмдері API арқылы трейдердің сүйікті сауда брокер платформасына қосылуы мүмкін. Бұл сізге, трейдерге электронды транзакцияларды орындауға немесе нақты уақыттағы баға ұсыныстарын және баға деректерін көруге мүмкіндік береді.
REST дегеніміз не?
Шынайы «веб-қызметтердің» API интерфейстері REST (Representational State Transfer) қамтиды. REST API интерфейстері URI (URL арнайы түрі болып табылатын Бірыңғай ресурс идентификаторлары), HTTP протоколы және браузермен керемет үйлесімді JSON деректер пішімінде құрастырылған.
SOAP протоколы, біз жоғарыда айтқанымыздай, пайдаланылуы мүмкін. REST API интерфейстерін жасау және өсіру оңай болуы мүмкін, бірақ олар өте үлкен және қиын болуы мүмкін — бәрі олардың қалай жасалғанына, кеңейтілгеніне және не істеуге арналғанына байланысты.
Ресурс шектеулері, төмендетілген қауіпсіздік талаптары, браузер клиентінің үйлесімділігі, табылу мүмкіндігі, деректер денсаулығы және ауқымдылығы RESTful болуы үшін API әзірлеуді қалайтын кейбір себептер – бұл веб-қызметтерге нақты қолданылатын нәрселер.
REST жеңілірек опцияны ұсынады. SOAP пайдалану қиын болды және көптеген әзірлеушілер үшін ауыртпалық болды. Мысалы, JavaScript көмегімен SOAP пайдалану қарапайым операцияларды аяқтау үшін көп код жазуды талап етеді, өйткені әр уақытта қажетті XML құрылымы жасалуы керек.
REST (әдетте) XML сұрауының орнына тікелей URL мекенжайын пайдаланады. Қосымша мәліметтерді ұсыну қажет сирек жағдайлар болса да, RESTful веб-қызметтерінің көпшілігі тек URL әдісін пайдаланады.
Төрт HTTP 1.1 етістіктері GET, POST, PUT және DELETE REST арқылы операцияларды орындау үшін пайдаланылуы мүмкін. SOAP-тан айырмашылығы, REST XML-де болуы үшін жауап қажет емес.
Деректерді командамен бөлінген мән (CSV), JavaScript нысанының белгісі (JSON) және Really Simple Syndication (RSS) пішімдерінде шығаратын REST негізіндегі веб-қызметтері қолжетімді (RSS).
Мақсат - қолданбаңыз үшін пайдаланып жатқан тілде талдауға оңай пішімде қажетті нәтижелерді алу.
Мүмкіндіктер
- REST HTTP протоколдарының арқасында қарапайымдылықты бәрінен бұрын баса көрсетеді.
- Веб REST үшін ең қолайлы. Ол браузерлермен үйлесімді, себебі JSON деректер пішімі ретінде пайдаланылады.
- REST өзінің керемет масштабталуымен және жылдамдығымен танымал.
- Клиент-сервер қосылымдары мен архитектуралары REST API интерфейстері арқылы қол жетімді етеді. Егер ол RESTful болса, ол осы клиент-сервер үлгісін пайдаланып, деректердің пайдалы жүктемелерін өткізетін екі тарап арасындағы айналмалы сапарлармен құрастырылады.
- REST API интерфейстері жалғыз стандартты интерфейсті пайдаланады. Барлық қолданбалардың біркелкі және бір шлюз арқылы қосылуын қамтамасыз ету қолданбалардың API интерфейсімен байланысу жолын жеңілдетеді.
САБЫН дегеніміз не?
Оның SOAP (қарапайым нысанға кіру протоколы) деп аталатын протоколы REST-ке қарағанда біршама күрделірек, өйткені ол қауіпсіздік пен хабарды жеткізуге қатысты стандарттарды қоса алғанда көбірек стандарттарды көрсетеді.
Бұл тән нормалар аздап қосымша шығындармен бірге келеді. Дегенмен, олар қауіпсіздікті, транзакцияны және ACID (Атомдық, жүйелілік, оқшаулау, беріктік) сәйкестік мүмкіндіктерін қажет ететін бизнес үшін шешуші фактор бола алады.
Осы салыстыру үшін SOAP-тың көптеген артықшылықтары веб-қызмет қолданбаларына жиі қолданылмайтынын атап өту маңызды, бұл оларды кәсіпорын түріндегі сценарийлер үшін қолайлы етеді.
Қауіпсіздіктің жоғары дәрежелері (мысалы, a мобильдік қосымшасы банкпен өзара әрекеттеседі), сенімді байланысты қажет ететін хабар алмасу қолданбалары, бұрынғы жүйелермен әрекеттесу немесе ACID сәйкестігі SOAP API арқылы қолданбаны жасақтағыңыз келетін бірнеше себептер болып табылады.
SOAP ұсынатын хабар алмасу мүмкіндіктері толығымен XML-ге негізделген. Бөлінген құрамдас нысан үлгісі (DCOM) және Common Object Request Broker Architecture сияқты интернетпен үйлеспейтін ескі технологиялар Microsoft (CORBA) алғаш жасаған кезде SOAP бағдарламасына ауыстырылды.
Екілік коммуникацияларға тәуелділік бұл жүйелердің істен шығуына әкеледі. Интернетте SOAP пайдаланатын XML хабар алмасуы жақсырақ жұмыс істейді.
Мүмкіндіктер
- SOAP қауіпсіздігі айтарлықтай күшейтілген. WS-Security — SSL қолдауына қосымша қажет болса, SOAP қосымша кәсіпорын деңгейіндегі қауіпсіздік мүмкіндіктерін ұсынатын кірістірілген стандарт.
- Сенімді хабар алмасу өнімділігі үшін сәтті/қайталап дәлелдеу. REST стандартталған хабарлама механизмі болмағандықтан, ол байланыс сәтсіз болған кезде ғана әрекетті қайталай алады. SOAP аралық өнімдерін пайдаланған кезде де, SOAP кірістірілген сәтті/қайталау логикасына байланысты түпкілікті сенімділікті ұсынады.
- SOAP қазірдің өзінде ACID стандарттарына сәйкес келеді. Транзакциялардың дерекқормен өзара әрекеттесу жолын белгілеу арқылы ACID сәйкестігі ауытқуларды азайтады және дерекқордың үйлесімділігін қорғайды. ACID басқа деректер консистенциясы үлгілеріне қарағанда абай болғандықтан, ол қаржылық немесе басқа да маңызды транзакцияларды басқару кезінде жиі пайдаланылады.
- Бағдарламашыларға түсіну оңай, өйткені SOAP толығымен XML негізіндегі байланыс.
- XML хабар алмасу протоколы HTTP протоколына қосымша болып табылады.
- Бір компьютерден екінші компьютерге байланыс SOAP хабарламасы арқылы таратылуы мүмкін.
- Клиент-сервер архитектурасын да іске асыруға болады. SOAP протоколының хабарламасын клиент сервер жағында орналасқан қашықтағы процедураны шақыру үшін пайдалана алады.
REST пен САБЫН арасындағы айырмашылықтар
1. сәулет
API бірінші кезекте сервердегі қолданбаның бизнес логикасының арнайы құрамдастарын көрсетуге арналған. REST бірдей мақсатта URI-ді пайдаланғанымен, SOAP бұл үшін Қызметтік интерфейсті пайдаланады.
REST API интерфейстері деректерден кейін жасалады, ал SOAP API интерфейстері API суреттейтін функциялардан кейін әзірленеді. Функцияға негізделген SOAP-пен салыстырғанда, REST деректерге негізделген дизайн болып табылады.
2. Кэштеу
Кэштейтін ретінде белгіленген деректерді браузерлер серверге жаңа сұрау жасауды талап етпей-ақ қайтадан пайдалана алады. Уақыт пен күш-жігерді үнемдеу - бұл артықшылық.
Жауаптар HTTP деңгейінде кэштелмейді, өйткені SOAP сұраулары HTTP стандарты идемпотентті емес деп санайтын POST сұраулары арқылы жіберіледі. Кэштеуді қолданғыңыз келсе, әлі де қажетті әдістерді құрастыруыңыз керек, себебі REST API интерфейстері бұл іске асыруды қамтымайды.
3. Ресурстар және өткізу қабілеттілігі
SOAP пайдаланатын конверт стиліндегі пайдалы жүктемені тасымалдауға байланысты үстеме шығындардың қарапайым өсуі байқалады, бұл қосымша өткізу қабілеттілігін қажет етеді. REST-тің жеңіл табиғаты бұл жағдайларда артықшылық болып табылады, өйткені ол әдетте веб-қызметтер үшін пайдаланылады.
4. қауіпсіздік
SOAP қолдайтын және тасымалдау деңгейінде SSL-ге қарағанда біршама мұқият WS-қауіпсіздігі қажет. Онымен бірге кәсіпорын деңгейіндегі қауіпсіздік шараларын қосу да өте қолайлы.
SSL арқылы шифрлауды SOAP және REST екеуі де қолдайды, ал REST HTTP протоколының қауіпсіз нұсқасы HTTPS пайдалана алады.
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 хабар алмасу қызметі) немесе басқа тасымалдау протоколын пайдалана аласыз.
- Күйлік операциялармен жұмыс істеу: REST API сұрауларына қарағанда, SOAP API сұраулары күй болып табылады, яғни сервер клиент туралы ақпаратты сақтайды және оны сұраулар немесе әрекеттер тізбегі бойынша пайдаланады. Бұл сервер өткізу қабілеттілігін және ресурстарын көбірек пайдаланса да, банк аударымдары сияқты әдеттегі немесе байланысты әрекеттерді орындау үшін өте маңызды.
қорытынды
REST және SOAP API интерфейстері арасындағы салыстыру REST SOAP-тан жақсырақ екенін анық көрсетеді. Тіпті, SOAP API қажет болатын жағдайлар бар. Кейбір жағдайларда веб-қызметтер REST және SOAP API интерфейстерін біріктіру арқылы жасалады.
Сондықтан, қолдану жағдайы қай API мәнері жақсы жұмыс істейтінін анықтайды.
пікір қалдыру