Та өөрийн апп-ыг Facebook-тэй холбож, автоматаар нийтлэл үүсгэхийг хүсч байна уу, эсвэл Instagram-д тодорхой hashtag-тай зургуудыг дахин нийтлэх боломжтой болгох уу?
Та мөн YouTube-ийн видеог вэбсайтдаа оруулахыг хүсч болно. Хэрэглээний програмчлалын интерфэйсүүд нь эдгээр болон бусад ажлуудыг (API) гүйцэтгэх боломжийг танд олгоно.
Instagram API, Facebook API, YouTube API зэрэг API-уудын ачаар өөр өөр програмууд хоорондоо аюулгүй, стандартчилагдсан байдлаар "ярилцаж" чадна.
Өөрөөр хэлбэл, програм нь өөр програм хангамжаас онцлог шинж чанар эсвэл өгөгдлийг авч, өөрийн онцлог, хэрэглэгчийн туршлагыг сайжруулахад ашиглах боломжтой. Гэхдээ апп-ууд хэрхэн эдгээр хүсэлтийг гаргаж, тэдгээрийг боловсруулж, бусдад ойлгомжтой байдлаар хариулах вэ?
Энэ нь API хэрхэн үүсгэгдсэнээс хамаарна. API (хэрэглээний програмчлалын интерфейс) дизайны талаар ярилцахдаа API-ийн хамгийн алдартай хоёр загвар болох SOAP ба REST-ийг харьцуулах нь ердийн зүйл юм.
SOAP APIs (Simple Object Access Protocol) нь Oracle, Sun, PayPal зэрэг пүүсүүдийн алтан стандарт болмогц Google, Amazon, eBay-ийн REST API-д нэг жилийн дараа ижил, эсрэгээр хариу ирсэн.
Энэ нийтлэлд бид SOAP API-г REST API-тай харьцуулж, харьцуулах бөгөөд ингэснээр та зорилгодоо аль нь илүү тохирохыг шийдэх болно.
Бид API-г тодорхойлж эхлэх болно.
API гэж юу вэ?
Хэрэглээний програмчлалын интерфейсийг API гэж нэрлэдэг. API нь үндсэндээ програм хөгжүүлэх боломжийг олгодог арга, функцүүдийн цуглуулга юм. Тэд янз бүрийн программ, үйлчилгээ, үйлдлийн системийн мэдээлэл, функцэд хандах боломжтой.
Тэд янз бүрийн програм хангамжийн системүүдийн хооронд зуучлагчийн үүрэг гүйцэтгэдэг. Эдгээр нь хоорондоо холбогдоогүй хоёр програмын хооронд "ярих" боломжийг олгодог.
Арилжаа, санхүүгийн зах зээлд идэвхтэй оролцдог хөрөнгийн брокерийн жишээг авч үзье. Автоматжуулсан цуглуулга арилжааны алгоритмууд API-ээр дамжуулан худалдаачны дуртай арилжааны брокер платформтой холбогдож болно. Энэ нь худалдаачин танд цахим гүйлгээ хийх эсвэл бодит цагийн үнийн санал, үнийн мэдээллийг харах боломжийг олгоно.
REST гэж юу вэ?
Жинхэнэ "вэб үйлчилгээ" API-д REST (Representation State Transfer) орно. REST API-ууд нь URI (Нэгдмэл нөөцийн тодорхойлогч, тэдгээрийн URL нь тусгай төрөл), HTTP протокол, хөтөчтэй гайхалтай нийцтэй JSON өгөгдлийн формат дээр бүтээгдсэн.
Бидний өмнө дурдсанчлан SOAP протоколыг бас ашиглаж болно. REST API-г үүсгэх, хөгжүүлэхэд хялбар байж болох ч тэдгээр нь асар том бөгөөд хэцүү байж болно-энэ нь тэдгээрийг хэрхэн бүтээж, өргөжүүлж, юу хийхээр төлөвлөж байгаагаас хамаарна.
Нөөцийн хязгаарлалт, аюулгүй байдлын бууруулсан шаардлага, хөтчийн үйлчлүүлэгчийн нийцтэй байдал, илрүүлэх боломжтой байдал, өгөгдлийн эрүүл мэнд, өргөтгөх чадвар зэрэг нь вэб үйлчилгээнд үнэхээр хамаатай зүйлс болох RESTful байх API-г хөгжүүлэхийг хүсэх зарим шалтгаан юм.
REST нь илүү хөнгөн сонголтыг санал болгодог. САВАН нь хэрэглэхэд хэцүү, олон хөгжүүлэгчдийн хувьд ачаалал ихтэй байсан. Жишээлбэл, SOAP-г JavaScript-тэй ашиглах нь энгийн үйлдлүүдийг гүйцэтгэхийн тулд маш их код бичих шаардлагатай байдаг, учир нь шаардлагатай 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 (Atomicity, Consistency, тусгаарлах, бат бөх чанар) нийцлийн чадавхийг шаарддаг бизнесүүдэд шийдвэрлэх хүчин зүйл болж чадна.
Энэхүү харьцуулалтыг хийхийн тулд SOAP-ийн олон давуу тал нь вэб үйлчилгээний програмуудад төдийлөн хамаарахгүй тул тэдгээрийг аж ахуйн нэгжийн төрлийн хувилбаруудад илүү тохиромжтой болгодог гэдгийг анхаарах нь чухал юм.
Аюулгүй байдлын өндөр зэрэгтэй (жишээлбэл, a гар утасны апп банктай харилцдаг), найдвартай харилцаа холбоо шаарддаг мессежийн програмууд, хуучин системүүдтэй харилцах эсвэл ACID-ийн нийцэл зэрэг нь SOAP API ашиглан програм зохиох хэд хэдэн шалтгаан болдог.
SOAP-ийн санал болгож буй мессежийн чадварууд нь бүхэлдээ XML дээр суурилдаг. Тархсан бүрэлдэхүүн хэсгийн объектын загвар (DCOM) болон Common Object Request Broker Architecture зэрэг интернетэд үл нийцэх хуучин технологиудыг Майкрософт (CORBA) анх үүсгэх үед SOAP-аар сольсон.
Хоёртын харилцаа холбоонд найдах нь эдгээр системийг бүтэлгүйтэхэд хүргэдэг. Интернет дээр SOAP-д ашигладаг XML мессеж илүү сайн ажилладаг.
онцлог
- SOAP-ийн аюулгүй байдал мэдэгдэхүйц чанга байна. WS-Security нь SSL дэмжлэгээс гадна шаардлагатай бол SOAP-д байгууллагын түвшний хамгаалалтын нэмэлт боломжуудыг санал болгодог суурилуулсан стандарт юм.
- Найдвартай мессежийн гүйцэтгэлийн үндэслэлийг амжилттай/дахин оролдоно уу. REST стандарт мессежийн механизмгүй учир харилцаа холбоо тасрах үед л дахин оролдох боломжтой. 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. Кэш
Кэш хийх боломжтой гэж тэмдэглэсэн өгөгдлийг хөтчүүд серверт шинэ хүсэлт гаргах шаардлагагүйгээр дахин ашиглах боломжтой. Цаг хугацаа, хүчин чармайлтаа хэмнэх нь үүний давуу тал юм.
SOAP асуулга нь HTTP стандарт нь idempotent биш гэж үздэг POST хүсэлтээр илгээгддэг тул хариултуудыг HTTP түвшинд кэшлэхгүй. Хэрэв та кэш ашиглахыг хүсвэл 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 загвар хамгийн сайн ажиллахыг тодорхойлох болно.
хариу үлдээх