መተግበሪያዎን በራስ ሰር ልጥፎችን ማመንጨት እንዲችል ከፌስቡክ ጋር ማገናኘት ይፈልጋሉ ወይንስ በተወሰኑ ሃሽታጎች ፎቶዎችን እንደገና ለመለጠፍ ከኢንስታግራም ጋር ማገናኘት ይፈልጋሉ?
እንዲሁም የዩቲዩብ ቪዲዮዎችን በድር ጣቢያዎ ላይ ማካተት ይፈልጋሉ። የመተግበሪያ ፕሮግራሚንግ በይነገጾች እነዚህን ሁሉ ተግባራት እና ተጨማሪ (ኤ.ፒ.አይ.አይ.) እንዲፈጽሙ ያስችሉዎታል።
እንደ ኢንስታግራም ኤፒአይ፣ ፌስቡክ ኤፒአይ እና ዩቲዩብ ኤፒአይ ለመሳሰሉት ኤፒአይዎች በአስተማማኝ እና ደረጃውን በጠበቀ መልኩ የተለያዩ አፕሊኬሽኖች እርስ በርሳቸው "መናገር" ይችላሉ።
በሌላ አነጋገር አንድ ፕሮግራም ባህሪያትን ወይም ዳታዎችን ከሌላ ሶፍትዌር ወስዶ የራሱን ባህሪያት ወይም የተጠቃሚ ተሞክሮ ለማሻሻል ሊጠቀምባቸው ይችላል። ነገር ግን መተግበሪያዎች እንዴት እነዚህን ጥያቄዎች ሊጠይቁ፣ ሊያስኬዷቸው እና ሌሎች ሊረዱት በሚችል መልኩ ምላሽ ሊሰጣቸው ይችላል?
ያ ኤፒአይ እንዴት እንደተፈጠረ ይወሰናል። የኤፒአይ (የመተግበሪያ ፕሮግራሚንግ በይነገጽ) ንድፎችን ሲወያዩ፣ በጣም ታዋቂ ከሆኑት የኤፒአይ ምሳሌዎች መካከል ሁለቱን SOAP እና REST ማወዳደር የተለመደ ነው።
SOAP APIs (ቀላል የነገር መዳረሻ ፕሮቶኮል) እንደ Oracle፣ Sun እና PayPal ላሉ ኩባንያዎች የወርቅ ደረጃ እንደ ሆነ፣ ከአንድ አመት ወይም ከዚያ በላይ ለ REST APIs ከGoogle፣ Amazon እና eBay እኩል እና ተቃራኒ ምላሽ ነበር።
በዚህ ልጥፍ ውስጥ፣ የትኛው ለእርስዎ ዓላማ የተሻለ እንደሆነ እንዲወስኑ የሶፕ ኤፒአይዎችን ከREST APIs ጋር እናነፃፅራለን።
ኤፒአይን በመግለጽ እንጀምራለን.
ኤፒአይ ምንድን ነው?
የመተግበሪያ ፕሮግራሚንግ በይነገጽ እንደ ኤፒአይ ተጠቅሷል። ኤፒአይዎች በመሠረቱ የመተግበሪያዎችን እድገት የሚያነቃቁ ዘዴዎች እና ተግባራት ስብስብ ናቸው። የተለያዩ ፕሮግራሞችን፣ አገልግሎቶችን ወይም ስርዓተ ክወናዎችን መረጃ እና ተግባራትን ያገኛሉ።
በተለያዩ የሶፍትዌር ስርዓቶች መካከል እንደ መካከለኛ ሰው ያገለግላሉ. በሁለት ያልተገናኙ ፕሮግራሞች መካከል "መነጋገር" ያስችላሉ.
በንግድ እና በፋይናንሺያል ገበያ ላይ ንቁ ተሳትፎ ያለው የአክሲዮን ደላላን እንደ ምሳሌ እንውሰድ። የራስ ሰር ስብስብ የግብይት ስልተ ቀመሮች በኤፒአይ በኩል ከነጋዴው ተወዳጅ የንግድ ደላላ መድረክ ጋር ሊገናኝ ይችላል። ይህ እርስዎ፣ ነጋዴው፣ የኤሌክትሮኒክስ ግብይቶችን እንዲፈጽሙ ወይም ቅጽበታዊ ጥቅሶችን እና የዋጋ አወጣጥ መረጃዎችን እንዲመለከቱ ያስችላቸዋል።
REST ምንድን ነው?
እውነተኛ “የድር አገልግሎቶች” ኤፒአይዎች REST (የግዛት ሽግግር) ያካትታሉ። REST APIs በ URIs (ዩኒፎርም Resource Identifiers፣የእነሱም ዩአርኤል ልዩ ዓይነት)፣ በኤችቲቲፒ ፕሮቶኮል እና በሚያስገርም ሁኔታ ከአሳሽ ጋር ተኳሃኝ በሆነው JSON የውሂብ ቅርጸት ነው የተሰሩት።
የ SOAP ፕሮቶኮል፣ አስቀድመን እንደገለጽነው፣ ምናልባት እንዲሁ ጥቅም ላይ ሊውል ይችላል። REST APIs ለመፍጠር እና ለማደግ ቀላል ሊሆኑ ይችላሉ፣ ነገር ግን በጣም ግዙፍ እና ከባድም ሊሆኑ ይችላሉ—ሁሉም እንዴት እንደተፈጠሩ፣ እንደተስፋፉ እና ለመስራት በታሰቡት ላይ የተመሰረተ ነው።
የግብአት ገደቦች፣ የደህንነት መስፈርቶች መቀነስ፣ የአሳሽ ደንበኛ ተኳሃኝነት፣ ተገኝነት፣ የውሂብ ጤና እና መጠነ-ሰፊነት ኤፒአይን ለእረፍት ጊዜ ለማዳበር የሚፈልጓቸው አንዳንድ ምክንያቶች ናቸው - በድር አገልግሎቶች ላይ የሚተገበሩ ነገሮች።
REST የበለጠ ቀላል ክብደት ያለው አማራጭ ያቀርባል። ሳሙና ለመጠቀም አስቸጋሪ እና ለብዙ ገንቢዎች ከባድ ነበር። ለምሳሌ ሶፕን ከጃቫ ስክሪፕት ጋር መጠቀም አስፈላጊው የኤክስኤምኤል መዋቅር በእያንዳንዱ ጊዜ መፈጠር ስላለበት ቀላል ስራዎችን ለማጠናቀቅ ብዙ ኮድ መጻፍ ይጠይቃል።
REST (በተለምዶ) በኤክስኤምኤል ጥያቄ ምትክ ቀጥተኛ ዩአርኤል ይጠቀማል። ምንም እንኳን ተጨማሪ ዝርዝሮችን ለማቅረብ በሚያስፈልግበት ጊዜ ያልተለመዱ ሁኔታዎች ቢኖሩም, አብዛኛዎቹ RESTful የድር አገልግሎቶች የዩአርኤል ቴክኒኮችን ብቻ ይጠቀማሉ.
አራቱ የ HTTP 1.1 ግሶች GET፣ POST፣ PUT እና DELETE ስራዎችን ለማከናወን በ REST መጠቀም ይቻላል። እንደ ሳሙና ሳይሆን፣ REST በኤክስኤምኤል ውስጥ ለመሆን መልሱን አያስፈልገውም።
መረጃን በCommand Separated Value (CSV)፣ JavaScript Object Notation (JSON) እና Really Simple Syndication (RSS) ቅርጸቶች የሚያወጡ REST ላይ የተመሰረቱ የድር አገልግሎቶች ይገኛሉ (RSS)።
አላማው የሚፈልጉትን ውጤት በቀላሉ ለመተንተን በሚጠቀሙበት ቋንቋ ለመተግበሪያዎ ማግኘት ይችላሉ።
ዋና መለያ ጸባያት
- በኤችቲቲፒ ፕሮቶኮሎች ምክንያት REST ከሁሉም በላይ ቀላልነትን አፅንዖት ይሰጣል።
- ድሩ ለ REST በጣም ተስማሚ ነው። JSON እንደ የውሂብ ቅርፀቱ ጥቅም ላይ ስለሚውል ከአሳሾች ጋር ተኳሃኝ ነው።
- REST በአስደናቂ ልኬቱ እና ፍጥነት የታወቀ ነው።
- የደንበኛ-አገልጋይ ግንኙነቶች እና አርክቴክቸር በREST APIs የበለጠ ተደራሽ እንዲሆኑ ተደርገዋል። RESTful ከሆነ፣ ይህንን የደንበኛ አገልጋይ ሞዴል በመጠቀም ነው የተሰራው፣ በሁለቱ ወገኖች መካከል የሚደረግ የክብ ጉዞዎች የውሂብ ክፍያን በማለፍ።
- REST ኤ.ፒ.አይ.ዎች ብቸኛ መደበኛ በይነገጽን ይጠቀማሉ። ሁሉም መተግበሪያዎች ወጥ በሆነ መንገድ እና በተመሳሳይ መግቢያ በር መገናኘታቸውን ማረጋገጥ፣ አፕሊኬሽኖች እንዴት ከኤፒአይ ጋር እንደሚገናኙ ያመቻቻሉ።
ሳሙና ምንድን ነው?
የራሱ ፕሮቶኮል፣ SOAP (ቀላል የነገር ተደራሽነት ፕሮቶኮል) ተብሎ የሚጠራው፣ ከREST ትንሽ የበለጠ የተወሳሰበ ነው ምክንያቱም ከደህንነት እና የመልእክት አሰጣጥ ጋር የተያያዙትን ጨምሮ ተጨማሪ መመዘኛዎችን ስለሚገልጽ።
እነዚህ ተፈጥሯዊ ደንቦች ከትንሽ ተጨማሪ ትርፍ ጋር ይመጣሉ። ነገር ግን፣ የበለጠ ሰፊ ደህንነት፣ ግብይት እና ACID (Atomicity፣ Consistency, Isolation, Durability) ተገዢነት ችሎታዎች ለሚፈልጉ ንግዶች ወሳኝ ምክንያት ሊሆኑ ይችላሉ።
ለዚህ ንጽጽር ሲባል፣ ብዙዎቹ የሶፕ ጥቅማጥቅሞች በድር አገልግሎት መተግበሪያዎች ላይ የማይተገበሩ መሆናቸው ለድርጅት አይነት ሁኔታዎች ይበልጥ ተስማሚ እንደሚያደርጋቸው ልብ ማለት ያስፈልጋል።
ከፍተኛ የደህንነት ደረጃዎች (እንደ ሀ የተንቀሳቃሽ ስልክ መተግበሪያ ከባንክ ጋር ይገናኛል)፣ ተዓማኒነት ያለው ግንኙነት የሚያስፈልጋቸው የመልእክት መላላኪያ መተግበሪያዎች፣ ከቆዩ ስርዓቶች ጋር መስተጋብር መፍጠር፣ ወይም ACID ማክበር የሶፕ ኤፒአይን በመጠቀም መተግበሪያን ለመንደፍ የሚፈልጓቸው ጥቂት ምክንያቶች ናቸው።
በሶፕ የሚቀርቡት የመልእክት መላላኪያ ችሎታዎች ሙሉ በሙሉ በኤክስኤምኤል ላይ የተመሰረቱ ናቸው። እንደ የተከፋፈለ አካል ነገር ሞዴል (DCOM) እና የጋራ የነገር ጥያቄ ደላላ አርክቴክቸር የቆዩ የኢንተርኔት ተኳሃኝ ያልሆኑ ቴክኖሎጂዎች በመጀመሪያ በማይክሮሶፍት (CORBA) ሲፈጠር በሶፕ ተተኩ።
በሁለትዮሽ ግንኙነቶች ላይ ያለው መተማመን እነዚህ ስርዓቶች እንዲወድቁ ያደርጋል. በይነመረብ ላይ፣ በሶፕ ጥቅም ላይ የሚውለው የኤክስኤምኤል መልእክት በተሻለ ሁኔታ ይሰራል።
ዋና መለያ ጸባያት
- የሳሙና ደህንነት በጣም ጥብቅ ነው። WS-Security ከኤስኤስኤል ድጋፍ በተጨማሪ አስፈላጊ ከሆነ በድርጅት ደረጃ የሶፕ ተጨማሪ የደህንነት ችሎታዎችን የሚያቀርብ አብሮገነብ ደረጃ ነው።
- ለታማኝ የመልእክት አፈጻጸም የተሳካ/ምክንያት እንደገና ይሞክሩ። REST ደረጃውን የጠበቀ የመልእክት ዘዴ ስለሌለው፣ግንኙነቱ ሲቋረጥ ብቻ ነው እንደገና መሞከር የሚችለው። SOAP መካከለኛዎችን በሚጠቀሙበት ጊዜ እንኳን፣ SOAP አብሮ በተሰራው ስኬታማ/እንደገና በመሞከር አመክንዮ ምክንያት ከጫፍ እስከ ጫፍ ጥገኛነትን ያቀርባል።
- ሶፕ አስቀድሞ የኤሲዲ መስፈርቶችን ያሟላል። ግብይቶች ከመረጃ ቋቱ ጋር እንዴት መስተጋብር መፍጠር እንደሚችሉ በመግለጽ፣ ACID ማክበር ያልተለመዱ ነገሮችን ይቀንሳል እና የውሂብ ጎታውን ወጥነት ይጠብቃል። ACID ከሌሎች የዳታ ወጥነት ሞዴሎች የበለጠ ጠንቃቃ ስለሆነ፣ የገንዘብም ሆነ ሌላ ሚስጥራዊነት ያላቸው ግብይቶችን ሲያስተዳድር በተደጋጋሚ ጥቅም ላይ ይውላል።
- SOAP ሙሉ በሙሉ በኤክስኤምኤል ላይ የተመሰረተ ግንኙነት ስለሆነ ለፕሮግራም አውጪዎች መረዳት ቀላል ነው።
- የኤክስኤምኤል መልእክት መላላኪያ ፕሮቶኮል የኤችቲቲፒ ፕሮቶኮል ተጨማሪ ነው።
- ከአንድ ኮምፒዩተር ወደ ሌላ ኮምፒዩተሮች የሚደረጉ ግንኙነቶች በሶፕ መልእክት ሊሰራጭ ይችላል።
- የደንበኛ-አገልጋይ አርክቴክቸርም ሊተገበር ይችላል። የሶፕ ፕሮቶኮል መልእክት ደንበኛው ወደ አገልጋይ-ጎን ያለውን የርቀት ሂደት ጥሪ ለመጥራት ሊጠቀምበት ይችላል።
REST Vs የሳሙና ልዩነቶች
1. ሥነ ሕንፃ
ኤፒአይ በዋነኛነት በአገልጋይ ላይ ያለውን መተግበሪያ የንግድ ሎጂክ የተወሰኑ ክፍሎችን ለማሳየት የታሰበ ነው። REST ዩአርአይዎችን ለተመሳሳይ ዓላማ ሲጠቀም፣ SOAP ለዚህ የአገልግሎት በይነገጽ ይጠቀማል።
REST APIs የተፈጠሩት ከመረጃው በኋላ ነው፣ ነገር ግን SOAP APIs የሚገነቡት ኤፒአይ ከሚያሳያቸው ተግባራዊነት በኋላ ነው። በበለጠ ተግባር ከሚመራው ከSOAP ጋር ሲነጻጸር፣ REST የበለጠ በውሂብ ላይ የተመሰረተ ንድፍ ነው።
2. መሸጎጫ
መሸጎጫ ተብሎ ምልክት የተደረገበት ውሂብ ወደ አገልጋዩ አዲስ ጥያቄ እንዲያቀርቡ ሳያስፈልጋቸው እንደገና በአሳሾች ሊጠቀሙበት ይችላሉ። ጊዜን እና ጥረትን መቆጠብ የዚህ ጥቅም ነው።
የሶፕ መጠይቆች የሚቀርቡት በPOST ጥያቄዎች ስለሆነ ምላሾች በኤችቲቲፒ ደረጃ አይቀመጡም። መሸጎጫ ለመቅጠር ከፈለጉ፣ REST APIs ይህን ትግበራ ስላላካተቱ አሁንም አስፈላጊዎቹን ቴክኒኮች መገንባት አለቦት።
3. መርጃዎች እና የመተላለፊያ ይዘት
በሶፕ ጥቅም ላይ በሚውለው የኤንቨሎፕ አይነት የክፍያ ዝውውር ምክንያት፣ ከመጠን በላይ መጠነኛ ጭማሪ አለ፣ ይህም ተጨማሪ የመተላለፊያ ይዘት ያስፈልገዋል። የ REST ቀላል ክብደት ተፈጥሮ በነዚህ ሁኔታዎች ጥቅሙ ነው ምክንያቱም በአጠቃላይ ለድር አገልግሎቶች ጥቅም ላይ ይውላል።
4. መያዣ
WS-ሴኪዩሪቲ፣ SOAP የሚደግፈው እና በትራንስፖርት ደረጃ ከSSL በመጠኑ የበለጠ ጠለቅ ያለ ነው፣ ተፈላጊ ነው። የድርጅት ደረጃ የደህንነት እርምጃዎችን ከእሱ ጋር ማካተት እንዲሁ ፍጹም ተስማሚ ነው።
ኤስኤስኤልን በመጠቀም ከጫፍ እስከ ጫፍ ምስጠራ በሁለቱም SOAP እና REST ይደገፋል፣ እና REST ደህንነቱ የተጠበቀ የኤችቲቲፒ ፕሮቶኮል ልዩነት ኤችቲቲፒኤስን መጠቀም ይችላል።
5. የክፍያ ጭነቶች አያያዝ
በበይነመረብ በኩል የሚተላለፈው መረጃ እንደ የክፍያ ጭነት ይባላል። "ከባድ" ተብሎ የሚታሰበው ጭነት ተጨማሪ መገልገያዎች ያስፈልገዋል. ኤክስኤምኤልን ከሚጠቀመው SOAP ጋር ሲነጻጸር፣ REST ብዙውን ጊዜ ክፍያውን ለመቀነስ JSON እና HTTP ይጠቀማል።
የመነጨ ኮድ ያለው ልዩ የደንበኛ ቤተ-መጽሐፍት በተለምዶ ደንበኛው የሶፕ ኤፒአይዎችን ለመድረስ በጣም ጥብቅ የግንኙነት ውል ስላላቸው መጠቀም አለባቸው።
በውጤቱም, SOAP ከ REST ያነሰ የአብስትራክሽን ደረጃ ያቀርባል እና ከአገልጋዩ ጋር በቅርበት የተገናኘ ነው.
REST መቼ መጠቀም ይቻላል?
- ይፋዊ ኤፒአይዎችን መፍጠርREST APIs የህዝብ ድር አገልግሎቶችን ለመገንባት ተመራጭ ናቸው ምክንያቱም ከሳሙና ኤፒአይዎች ይልቅ ለመጠቀም እና ለመውሰድ ቀላል ሆነው ስለሚታዩ ነው። በተጨማሪም፣ SOAP REST የሌላቸውን በርካታ አብሮገነብ የደህንነት እርምጃዎችን ያቀርባል፣ ምንም እንኳን እነዚህ ባህሪያት በክፍት ውሂብ እና አገልግሎቶች ሲሰሩ አያስፈልጉም።
- የሞባይል መተግበሪያዎችን በመገንባት ላይREST ትንሽ፣ ውጤታማ፣ ሀገር አልባ እና መሸጎጫ ስለሆነ የሞባይል አፕሊኬሽኖችን ለመገንባት ፍጹም ነው።
- ውስን የአገልጋይ ሀብቶችን እና የመተላለፊያ ይዘትን መጠቀምለ REST ኤፒአይ የሚቀርቡ ሁሉም ጥያቄዎች አገር አልባ መሆን አለባቸው፣ ይህ ማለት እያንዳንዱ መስተጋብር የተለየ ነው እና እያንዳንዱ ጥያቄ እና ምላሽ ያንን መስተጋብር ለማጠናቀቅ አስፈላጊ የሆኑትን ሁሉንም መረጃዎች ይይዛል። እያንዳንዱን እንደ አዲስ ጥያቄ ስለሚመለከት አገልጋዩ የቀድሞ ጥያቄዎችን መዝገቦች አያስቀምጥም። በዚህ ምክንያት አገልጋዩ በጣም ያነሰ ማህደረ ትውስታን ይፈልጋል እና በበለጠ ፍጥነት ይሰራል ምክንያቱም ጥያቄ ተጨማሪ እርምጃዎችን አያስፈልገውም ወይም ታሪካዊ መረጃን ማግኘት አያስፈልገውም።
ሳሙና መቼ መጠቀም ይቻላል?
- በተለይ ለትልቅ ንግዶች የግል ኤፒአይዎችን መፍጠር: SOAP ያልተማከለ፣ በተከፋፈለ አካባቢ ውስጥ የውሂብ ፍሰትን ስለሚያስችል እና በርካታ የመስመር ላይ የደህንነት ባህሪያትን ስለሚይዝ ለድርጅት አፕሊኬሽኖች ፍጹም ነው።
- ከኤችቲቲፒ ሌላ የትራንስፖርት ፕሮቶኮልን እንደ መሰረታዊ ንብርብር መጠቀም: ሳሙና በኤችቲቲፒ እንደ ታችኛው ንብርብር ጥገኛ አይደለም። በማመልከቻዎ ላይ በመመስረት፣ SMTP (ቀላል የመልእክት ማስተላለፊያ ፕሮቶኮል)፣ JMS (ጃቫ መልእክት አገልግሎት) ወይም ሌላ የትራንስፖርት ፕሮቶኮልን መጠቀም ይችላሉ።
- ከትክክለኛ ስራዎች ጋር በመስራት ላይለ REST APIs ከሚቀርቡት ጥያቄዎች በተቃራኒ፣ ለሶፕ ኤፒአይዎች የሚቀርቡ ጥያቄዎች ትክክለኛ ናቸው፣ ይህም ማለት አገልጋዩ ስለ ደንበኛው መረጃ ይቆጥባል እና በጥያቄዎች ወይም ኦፕሬሽኖች ሰንሰለት ውስጥ ይጠቀማል። ምንም እንኳን ይህ ተጨማሪ የአገልጋይ ባንድዊድዝ እና ግብዓቶችን ቢጠቀምም፣ እንደ የባንክ ማስተላለፍ ያሉ መደበኛ ወይም የተገናኙ ድርጊቶችን ለማከናወን ወሳኝ ነው።
መደምደሚያ
በREST እና በሳሙና ኤፒአይ መካከል ያለው ንፅፅር REST ከሳሙና እንደሚመረጥ ግልፅ ያደርገዋል። አሁንም ቢሆን፣ SOAP API የሚፈለግባቸው ሁኔታዎች አሉ። በአንዳንድ አጋጣሚዎች የድር አገልግሎቶች የሚፈጠሩት REST እና SOAP APIsን በማጣመር ነው።
ስለዚህ የአጠቃቀም ጉዳይ የትኛው የኤፒአይ ቅጥ በተሻለ ሁኔታ እንደሚሰራ ይወስናል።
መልስ ይስጡ