ඔබගේ පසුපස අන්තය API ලෙස ලිවිය යුතුද?


331

අපේ එම්වීසී අයදුම්පත ගැන මම අද උණුසුම් සාකච්ඡාවක් පැවැත්වුවා. අපට MVC ( ASP.NET ) හි ලියා ඇති වෙබ් අඩවියක් ඇති අතර , එය සාමාන්‍යයෙන් දර්ශනයේ යමක් කිරීමේ රටාව අනුගමනය කරයි -> පාලකයට පහර දෙන්න -> පාලකය ආකෘතියක් සාදයි (දත්ත ලබා ගන්නා කළමනාකරුවෙකු අමතන්න, ආකෘතිය සාදයි පාලක ක්‍රමයම) -> ආකෘතිය බැලීමට යයි -> මෙයට පිළියමක් සහ නැවත කරන්න.

ඔහු කිව්වා අපේ කේතය ඕනෑවට වඩා තදින් බැඳී ඇති බව. උදාහරණයක් ලෙස, අපට ඩෙස්ක්ටොප් යෙදුමක් අවශ්‍ය නම්, අපගේ පවතින කේතය භාවිතා කිරීමට අපට නොහැකි වනු ඇත.

ඔහු පැවසූ විසඳුම සහ හොඳම පුහුණුව වන්නේ API එකක් තැනීමයි, ඉන්පසු ඔබේ වෙබ් අඩවිය ඔබේ API එකට ඉහළින් ගොඩනඟා ඩෙස්ක්ටොප් යෙදුමක්, ජංගම යෙදුමක් යනාදිය සෑදීම ඉතා සරල ය.

විවිධ හේතු නිසා මෙය මට නරක අදහසක් සේ පෙනේ.

කෙසේ වෙතත්, මෙම ක්‍රියාව ගැන සාකච්ඡා කළ හැකි ගොග්ලිං කිරීමෙන් මට කිසිවක් සොයාගත නොහැකි විය. වාසි, අවාසි, ඔබ එසේ කළ යුත්තේ ඇයි, ඔබ නොකියන්නේ ඇයි හෝ වැඩිදුර කියවීම ගැන යමෙකුට තොරතුරු තිබේද?

එය නරක අදහසක් යැයි මා සිතන හේතු කිහිපයක්:

  • ඔබගේ පසුබිම API එකකින් ධාවනය කිරීමට නොහැකි තරම් වියුක්තය. ඔබ එය ඕනෑවට වඩා නම්‍යශීලී කිරීමට උත්සාහ කරන අතර එය පාලනය කළ නොහැකි අවුලක් වනු ඇත.

  • එම්වීසී තුළ ගොඩනගා ඇති සියලුම දේ භූමිකාවන් සහ සත්‍යාපනය වැනි නිෂ් less ල බව පෙනේ. උදාහරණයක් ලෙස, [බලය පැවරීම] ගුණාංග සහ ආරක්ෂාව; ඔබට ඔබේම දෑ පෙරළීමට සිදුවේ.

  • ඔබගේ සියලු API ඇමතුම් සඳහා ආරක්ෂක තොරතුරු අමුණා ඇති අතර ඔබට ටෝකන පද්ධතියක් සහ වොට්නොට් සංවර්ධනය කිරීමට සිදුවේ.

  • ඔබේ වැඩසටහන මෙතෙක් කරන සෑම කාර්යයක් සඳහාම ඔබට සම්පූර්ණ API ඇමතුම් ලිවීමට සිදුවේ. ඔබට ක්‍රියාත්මක කිරීමට අවශ්‍ය සෑම ක්‍රමයක්ම API එකකින් ඉවත් කළ යුතුය. සෑම පරිශීලකයෙකුටම ලබා ගැනීම / යාවත්කාලීන කිරීම / මකා දැමීම, සහ එකිනෙකාගේ ක්‍රියාකාරිත්වය සඳහා ප්‍රභේදයක් උදා. පරිශීලක නාමය යාවත්කාලීන කිරීම, පරිශීලකයෙකු කණ්ඩායමකට එක් කිරීම යනාදිය. ඒ සෑම එකක්ම සුවිශේෂී API ඇමතුමක් වනු ඇත.

  • ඒපීඅයි වෙත පැමිණෙන විට අතුරුමුහුණත් සහ වියුක්ත පන්ති වැනි සියලු ආකාරයේ මෙවලම් ඔබට අහිමි වේ. WCF වැනි දෑ අතුරුමුහුණත් සඳහා ඉතා සුළු සහයෝගයක් ඇත.

  • ඔබට පරිශීලකයෙකු නිර්මාණය කරන ක්‍රමයක් ඇත, නැතහොත් යම් කාර්යයක් ඉටු කරයි. ඔබට පරිශීලකයින් 50 ක් නිර්මාණය කිරීමට අවශ්‍ය නම්, ඔබට එය 50 වතාවක් අමතන්න. ඔබ මෙම ක්‍රමය API එකක් ලෙස කිරීමට තීරණය කළ විට ඔබේ දේශීය වෙබ් සේවාදායකයාට නම් කළ හැකි පයිප්ප එයට සම්බන්ධ විය හැකි අතර කිසිදු ගැටළුවක් නැත - ඔබේ ඩෙස්ක්ටොප් සේවාදායකයාටද එය පහර දිය හැකිය, නමුත් හදිසියේම ඔබේ තොග පරිශීලක නිර්මාණයට අන්තර්ජාලය හරහා API එක 50 වතාවක් මිටියෙන් පහර දීම ඇතුළත් වේ. හොඳ නැහැ. එබැවින් ඔබ තොග ක්‍රමයක් නිර්මාණය කළ යුතුය, නමුත් ඇත්ත වශයෙන්ම ඔබ එය ඩෙස්ක්ටොප් සේවාදායකයින් සඳහා නිර්මාණය කරයි. මේ ආකාරයෙන්, ඔබ අවසන් වන්නේ අ) ඔබේ ඒපීඅයි සමඟ එය ඒකාබද්ධ කරන දේ මත පදනම්ව වෙනස් කිරීම සහ ඔබට එය සමඟ කෙලින්ම සම්බන්ධ විය නොහැක, ආ) අතිරේක ශ්‍රිතයක් නිර්මාණය කිරීම සඳහා තවත් බොහෝ දේ කරන්න.

  • යග්නි . සමාන ලෙස ක්‍රියාත්මක වන යෙදුම් දෙකක්, එක් වෙබ් සහ එක් වින්ඩෝස් යෙදුමක් ලිවීමට ඔබ විශේෂයෙන් සැලසුම් නොකරන්නේ නම්, එය විශාල සංවර්ධන කාර්යයන් විශාල ප්‍රමාණයක් වේ.

  • ඔබට අවසානය දක්වා පියවර තැබිය නොහැකි විට නිදොස් කිරීම වඩාත් අපහසු වේ.

  • බොහෝ ඉදිරියට සහ පසුපසට අවශ්‍ය වන ස්වාධීන මෙහෙයුම් රාශියක්, උදාහරණයක් ලෙස සමහර කේතයන් වත්මන් පරිශීලකයා ලබා ගත හැකිය, පරිශීලකයා පරිපාලක භූමිකාවේ සිටිනවාදැයි පරීක්ෂා කරන්න, පරිශීලකයා අයත් සමාගම ලබා ගන්න, වෙනත් සාමාජිකයින්ගේ ලැයිස්තුවක් ලබා ගන්න, ඒ සියල්ල යවන්න විද්‍යුත් තැපෑලක්. ඒ සඳහා බොහෝ API ඇමතුම් අවශ්‍ය වනු ඇත, නැතහොත් ඔබට අවශ්‍ය නිශ්චිත කාර්යය බෙස්පෝක් ක්‍රමයක් ලිවීම, එහිදී එම බෙස්පෝක් ක්‍රමයේ එකම වාසිය වේගවත් වන අතර අවාසිය නම් එය නම්‍යශීලී වීමයි.

  • බොහෝ විට තවත් හේතු කිහිපයක් මේවා මගේ හිස මුදුනේ සිට ඇත.

ඔබට සමාන යෙදුම් දෙකක් අවශ්‍ය නම් මිස එය මට සමාන යැයි පෙනේ, එය ඇත්තෙන්ම එය වටින්නේ නැත. මේ ආකාරයට ගොඩනගා ඇති ASP.NET යෙදුමක් මා දැක නැත, ඔබට වෙනම යෙදුම් දෙකක් (API සහ ඔබේ කේතය) ලිවිය යුතු අතර අනුවාදය ඒවා දෙකම පාලනය කරයි (ඔබේ පරිශීලක පිටුවට නව ක්ෂේත්‍රයක් ලැබුනේ නම්, ඔබ ' අහිතකර ප්‍රති effects ල නොමැති බව සහතික කිරීම සඳහා එකවර API සහ ඔබේ පරිභෝජන කේතය යාවත්කාලීන කළ යුතුය. නැතහොත් එය ශක්තිමත් ලෙස තබා ගැනීම සඳහා අමතර වැඩ ගොඩක් යොදවන්න).


සංස්කරණය කරන්න: සමහර හොඳ ප්‍රතිචාර, ඇත්තෙන්ම මේ සියල්ලෙන් අදහස් කරන්නේ කුමක්ද යන්න පිළිබඳ හොඳ අදහසක් ලබා ගැනීමට පටන් ගනී. එබැවින් මගේ ප්‍රශ්නය පුළුල් කිරීම සඳහා, මෙම API ව්‍යුහය අනුගමනය කිරීම සඳහා ඔබ MVC යෙදුමක් සකස් කරන්නේ කෙසේද?

උදාහරණයක් ලෙස, පරිශීලකයෙකු පිළිබඳ තොරතුරු පෙන්වන වෙබ් අඩවියක් ඔබ සතුව ඇත. MVC යටතේ, ඔබට ඇත්තේ:

View - (CS) HTML පිටුවක් UserViewModel පාලකය ප්‍රදර්ශනය කරයි - GetUser () අමතයි සහ GetUser ක්‍රමයක් ඇති දර්ශන කළමණාකරු පන්තියට (ඔබේ API වර්ග කිරීම) වෙත යොමු වන UserViewModel නිර්මාණය කරයි.

පාලකය GetUser () කරන නමුත් ඔබට ඩෙස්ක්ටොප් යෙදුමක් ද අවශ්‍ය වේ. මෙයින් අදහස් කරන්නේ ඔබේ GetUser යම් ආකාරයක API හරහා නිරාවරණය කළ යුතු බවයි. ඔබට TCP සම්බන්ධතාවයක් අවශ්‍ය විය හැකිය, WCF හෝ දුරස්ථ කිරීම. නිරන්තර සම්බන්ධතා දුර්වල බැවින් ඔබට RESTful වන ජංගම යෙදුමක් ද අවශ්‍ය වේ.

ඉතින් ඔබ එක් එක් සඳහා API එකක් ලියනවාද, WCF වෙබ් සේවාවක් GetUser () ක්‍රමයක් ඇති අතර කේතය දැන්ම කරයිද return new UserManager().GetUser()? එකම දේ කරන mvc 4 වෙබ් api ක්‍රමයක්? ඔබේ MVC පාලක ක්‍රමයට කෙලින්ම GetUser අමතන්න?

නැතහොත් ඔබ තිදෙනාටම (වෙබ් api REST සේවාව) ක්‍රියාත්මක වන විසඳුම තෝරාගෙන ඒ මත සියල්ල ගොඩනඟයි, එබැවින් යෙදුම් තුනම API ඇමතුම් (mvc ඒවා දේශීය යන්ත්‍රයට) කරයි.

මෙය න්‍යායාත්මක පරිපූර්ණ අවස්ථාවක් පමණක්ද? මේ ආකාරයෙන් සංවර්ධනය කිරීමේදී මට විශාල පොදු කාර්යයන් දැකිය හැකිය, විශේෂයෙන් ඔබට RESTful ආකාරයෙන් මෙහෙයුම් කිරීමට ඉඩ සලසන ආකාරයකින් සංවර්ධනය කළ යුතු නම්. මම හිතන්නේ මෙයින් සමහරක් පිළිතුරු වලින් ආවරණය වී ඇත.


2 වන සංස්කරණය: තවත් දේවල් කියවීමෙන් පසු, මම පහතින් සටහනක් තැබුවෙමි. ප්‍රශ්නය මා සිතන සුළු උපක්‍රමයකි. ඒපීඅයි එකක් ලෙස ඔබ ඔබේ පසුපස අන්තය ලිවුවහොත්, සෑම දෙයක්ම (එම්වීසී ඇප්, ඩෙස්ක්ටොප් ඇප්, මොබයිල් ඇප්) දේවල් කිරීමට කැඳවන තනි වෙබ් සේවාවක් තිබිය යුතු යැයි සිතීම ව්‍යාකූල විය.

මා නිගමනය කර ඇත්තේ ඔබ සැබවින්ම කළ යුත්තේ ඔබේ ව්‍යාපාර තර්කන ස්ථරය නිවැරදිව විසන්ධි වී ඇති බවට වග බලා ගැනීමයි. මගේ කේතය දෙස බලන විට, මම මෙය දැනටමත් කරමි - පාලකය GetUser()කළමනාකරුවෙකු අමතනු ඇත, ඉන්පසු දර්ශනයක් සමඟ විදහා දැක්වීමට දර්ශන ආකෘතියක් සාදන්න. ඉතින් ඇත්ත වශයෙන්ම, ව්‍යාපාර තාර්කික ස්තරය API එකකි . ඔබට එය ඩෙස්ක්ටොප් යෙදුමකින් ඇමතීමට අවශ්‍ය නම්, එය ඇමතීමට පහසුකම් සැලසීම සඳහා ඔබට WCF සේවාවක් වැනි යමක් ලිවිය යුතුය. GetUser()කේතය අඩංගු WCF ක්‍රමයක් තිබීම පමණක් return MyBusinessLayer.GetUser()ප්‍රමාණවත් වේ. එබැවින් API යනු ව්‍යාපාරික තර්කනය වන අතර WCF / web api යනාදිය බාහිර යෙදුම් වලට ඇමතීමට ඉඩ දීම සඳහා කේතයේ මාතෘකාවකි.

එබැවින් ඔබට අවශ්‍ය දේ මත පදනම්ව ඔබේ ව්‍යාපාර තාර්කික ස්තරය විවිධ ඒපීඅයි වල ඔතා තැබිය යුතු අතර, ඔබේ අනෙක් යෙදුම් කිරීමට අවශ්‍ය සෑම මෙහෙයුමක් සඳහාම ඔබට API ක්‍රමයක් ලිවීමට සිදුවේ, තවද ඔබට අවශ්‍ය වනු ඇත සත්‍යාපනය කිරීමට ක්‍රමයක් සකසන්න, නමුත් බොහෝ දුරට එය එසේමය. ඔබේ ව්‍යාපාර තර්කනය වෙනම ව්‍යාපෘතියක (පන්ති පුස්තකාලය) තබා ගන්න, එවිට ඔබට කිසිදු ගැටළුවක් ඇති නොවනු ඇත!

මෙම අර්ථ නිරූපණය නිවැරදි යැයි බලාපොරොත්තු වෙමු. එය ජනනය කළ සියලු සාකච්ඡා / අදහස් වලට ස්තූතියි.


27
එය නරක අදහසක් යැයි ඔබ සිතීමට හේතු කරුණාකර හෙළි කළ හැකිද? මේ දිනවල මම පිළිගත යුතුයි එය කිරීමට කිසිදු හේතුවක් මා දකින්නේ නැහැ. එය වෙනත් වාසි අතර, ඔබගේ යෙදුම විවිධ වේදිකාවලට ගෙනයාම වඩාත් පහසු කරවන අතර ඔබේ පසුපස කේතය ස්පර්ශ නොකර ඉදිරිපස කෙළවරේ විශාල නම්‍යතාවයක් ලබා දෙයි ...
ලෝරන්ට් එස්.

13
LSLC: ඔබ API යැයි කියන විට, ඔබ අදහස් කරන්නේ SOAP හෝ REST අතුරුමුහුණතක් වැනි වෙබ් සේවා API එකක්ද? මන්ද ඔබ පසුපස අන්තය API එකක් කළ යුතු නමුත් ඔබ එය වෙබ් සේවාවක් බවට පත් නොකළ යුතුය.
ජැක් බී

7
AnIanNewson "ජංගම යෙදුමක්, උදාහරණයක් ලෙස, ඒවා අඩු විශේෂාංග ඇත." ජංගම යෙදුම් දෙවන පන්තියේ පුරවැසියන් විය යුතු බවට ඒත්තු ගැන්වෙන හේතුවක් මා අසා නැත ... (එහෙත් සෑම දෙනාම එය එසේ කරන බව පෙනේ)
මයිකල්

3
AnIanNewson සමහර විට එය මා පමණක් විය හැකිය ... නමුත් මම ජංගම දුරකථනයෙන් ඉතා සුළු දෙයක් කරන තැනට ජංගම දුරකථනයෙන් යමක් හෝ වෙනත් දෙයක් කිරීමට නොහැකි වීමෙන් මම නිතරම කම්පාවට පත්ව සිටිමි
මයිකල්

12
ඔබ පවසන්නේ YAGNI අදාළ වන නමුත් මගේ අත්දැකීම යෙදුම් වලට එක් එක් වසර දෙකකට වරක් UI නැවත ලිවීමක් ලබා ගත හැකි බවයි, නැතහොත් සෑම කෙනෙකුම පැමිණිලි කරන්නේ ඔවුන්ට එකක් අවශ්‍ය බවයි. නව ඉදිරිපස තාක්‍ෂණයක් පැමිණ ඇති හෙයින් අපගේ කාර්යබහුල තර්කනය අපට අහිමි නොවන්නේ නම් හොඳයි.
corsiKa

Answers:


289

ඔව් ඔබ කළ යුතුයි.

එය ඔබගේ පසුපස කෙළවර නැවත භාවිතා කළ හැකි වනවා පමණක් නොව, වැඩි ආරක්ෂාවක් සහ වඩා හොඳ සැලසුමක් සඳහා ඉඩ ලබා දේ. ඔබ තනි පද්ධතියක කොටසක් ලෙස ඔබේ පසුබිම ලියන්නේ නම්, ඔබ එය තනි දිගුවක්, ප්‍රතිස්ථාපනය කිරීම හෝ වැඩි දියුණු කිරීම කිසි විටෙකත් පහසු නොවන මොනොලිතික් මෝස්තරයක් සාදයි.

මේ මොහොතේ මෙය ජනප්‍රිය වී ඇති එක් ප්‍රදේශයක් වන්නේ මයික්‍රෝ සර්විසස් ය . සේවාදායක පද්ධතිය පරිභෝජනය කරන ඒපීඅයි එකක් සපයන සෑම කුඩා (හෝ විශාල) සේවාවකට පසුපෙළ බෙදී ඇති තැන. ඔබගේ යෙදුමේ බොහෝ තෙවන පාර්ශවීය දත්ත ප්‍රභවයන් භාවිතා කිරීම ඔබ සිතන්නේ නම්, ඔබ මෙය දැනටමත් කරමින් සිටින බව ඔබට වැටහේ.

තවත් එක් වාසියක් නම්, එක් එක් සේවාවේ ඉදිකිරීම් සහ නඩත්තුව වෙනත් කණ්ඩායමකට භාර දිය හැකි අතර, වෙනත් කිසිදු කණ්ඩායමක් නිෂ්පාදනය කරන නිෂ්පාදනවලට බලපාන්නේ නැති අංග එයට එකතු කළ හැකිය. ඒවා සිදු කර ඔවුන්ගේ සේවාව මුදා හරින විට පමණක් ඔබ ඒවා පරිභෝජනය කිරීම සඳහා ඔබේ නිෂ්පාදනයට විශේෂාංග එකතු කිරීමට පටන් ගනී. මෙය සංවර්ධනය වඩාත් සුමට කළ හැකිය (සමස්තයක් ලෙස මන්දගාමී විය හැකි නමුත්, ඔබ වඩා හොඳ ගුණාත්මක බවක් සහ අවබෝධයක් ලබා ගැනීමට නැඹුරු වනු ඇත)


සංස්කරණය කරන්න: හරි මම ඔබේ ගැටලුව දකිනවා. ඔබ API දුරස්ථ පුස්තකාලයක් ලෙස සිතයි. එය නෙමෙයි. සේවාව දත්ත සපයන සේවාවක් ලෙස සිතන්න. දත්ත ලබා ගැනීම සඳහා ඔබ සේවාව අමතා එම දත්ත දේශීයව ක්‍රියාත්මක කරන්න. පරිශීලකයෙකු ලොග් වී ඇත්දැයි තීරණය කිරීම සඳහා ඔබ " GetUser" අමතා 'logged on'අගය දෙස බලන්න . ( ඇත්ත වශයෙන්ම එම උදාහරණය සමඟ YMMV ).

තොග පරිශීලකයින් නිර්මාණය කිරීම සඳහා ඔබේ උදාහරණය නිදහසට කරුණු ඉදිරිපත් කිරීම පමණි - මෙහි කිසිදු වෙනසක් නැත, ඔබට මොනොලිතික් පද්ධතියකින් කළ හැකි ඕනෑම දෙයක් තවමත් සේවා ගෘහ නිර්මාණ ශිල්පය තුළ කළ හැකිය (උදා: ඔබ විශාල වශයෙන් නිර්මාණය කිරීම සඳහා පරිශීලකයින් සමූහයක් සමත් වනු ඇත, නැතහොත් නිර්මාණය කිරීම සඳහා තනි එකක්. ඔබට තවමත් සේවාවන් සමඟ හරියටම කළ හැකිය).

MVC දැනටමත් හුදකලා සේවා සංකල්පය මත පදනම් වී ඇති අතර, MVC රාමු පමණක් ඒවා තනි ව්‍යාපෘතියකට සම්බන්ධ කරයි. ඔබේ රාමුව මඟින් ඔබට ලබා දෙන මිටි උදව්කරුවන් හැර ඔබට කිසිවක් අහිමි නොවන බව මින් අදහස් නොවේ. වෙනස් රාමුවක් භාවිතා කරන්න, ඔබට විවිධ සහායකයින් භාවිතා කිරීමට සිදුවේ. නැතහොත්, මේ අවස්ථාවේ දී, ඔබේම දෑ පෙරළීම (හෝ ඒවා පුස්තකාලයක් භාවිතයෙන් කෙලින්ම එකතු කිරීම).

නිදොස් කිරීම ද පහසුය - ඔබට ඒපීඅයි හුදකලා ලෙස පරීක්ෂා කළ හැකිය, එවිට ඔබට එය නිදොස් කිරීමට අවශ්‍ය නොවේ (ඔබට අවසානය දක්වා නිදොස්කරණය කළ හැකිය, දෘශ්‍ය ස්ටුඩියෝට එකවර ක්‍රියාවලි කිහිපයකට ඇමිණිය හැකිය).

ආරක්ෂාව ක්‍රියාත්මක කරන අමතර වැඩ වැනි දේවල් හොඳ දෙයකි. දැනට, ඔබ සියලු කේත ඔබේ වෙබ් අඩවියට එකතු කරන්නේ නම්, හැකර්වරයකු එයට ප්‍රවේශය ලබා ගන්නේ නම්, ඔවුන් සෑම දෙයකටම ප්‍රවේශය ලබා ගනී, ඩී.බී. ඔබ එය API එකකට බෙදුවහොත්, ඒපීඅයි ස්තරයද හැක් නොකරන්නේ නම් හැකර්ට ඔබේ කේතය සමඟ කළ හැක්කේ ඉතා අල්ප ප්‍රමාණයකි - එය ඔවුන්ට ඇදහිය නොහැකි තරම් අපහසු වනු ඇත (ප්‍රහාරකයින් සියලු වෙබ් අඩවි භාවිතා කරන්නන්ගේ විශාල ලැයිස්තු හෝ සීසී විස්තර ලබා ගන්නේ කෙසේදැයි කවදා හෝ කල්පනා කර තිබේද? ඔවුන් මෙහෙයුම් පද්ධතිය හෝ වෙබ් සේවාදායකය හැක් කර ඇති අතර එයට ඩීබී සමඟ connection ජු සම්බන්ධතාවයක් ඇති අතර එහිදී ඔවුන්ට පහසුවෙන් " select * from users" ධාවනය කළ හැකිය ).

මේ වගේ ලියා ඇති බොහෝ වෙබ් අඩවි (සහ සේවාදායක-සේවාදායක යෙදුම්) මම දැක ඇති බව මම කියමි. මම මූල්‍ය සේවා කර්මාන්තයේ වැඩ කරන විට, කිසිවෙකු කිසි විටෙකත් වෙබ් අඩවියක් ලියන්නේ නැත, අර්ධ වශයෙන් එය ආරක්ෂිත අවදානමක් ඇති නිසාත්, අර්ධ වශයෙන් බොහෝ සංවර්ධනය ස්ථාවර (එනම් උරුමය) පසු-අන්ත දත්ත සැකසුම් වලට වඩා GUIs නිසාත් ය. පද්ධති. සේවා ශෛලීය ගෘහ නිර්මාණ ශිල්පයක් භාවිතා කරමින් වෙබ් අඩවියක් ලෙස ඩීපී පද්ධතිය නිරාවරණය කිරීම පහසුය.

2 වන සංස්කරණය: විෂය පිළිබඳ සමහර සබැඳි (OP සඳහා):

වෙබ් අඩවියක සන්දර්භය තුළ මේවා ගැන කතා කරන විට, වෙබ් සේවාදායකය ඉදිරිපත් කිරීමේ ස්තරය ලෙස සැලකිය යුතු අතර, එය අනෙක් ස්ථර අමතන්නේ සේවාදායකයා වන නිසාත්, එය විදැහුම්කරණය සඳහා බ්‍රව්සරයට යවන UI දර්ශන ගොඩනඟන නිසාත් ය. එය විශාල මාතෘකාවක් වන අතර, ඔබේ යෙදුම සැලසුම් කිරීමට බොහෝ ක්‍රම තිබේ - දත්ත කේන්ද්‍රීය හෝ වසම් කේන්ද්‍රීය (මම සාමාන්‍යයෙන් වසම් කේන්ද්‍රීය 'පිරිසිදු' යැයි සලකමි , නමුත් YMMV ), නමුත් ඒ සියල්ල අතර තාර්කික ස්ථරයක් ඇලවීම දක්වා පහළට පැමිණේ. ඔබේ සේවාදායකයා සහ ඔබේ ඩී.බී. මැද, ඒපීඅයි, ස්ථරය ඔබේ මොඩලයට සමාන යැයි ඔබ සලකන්නේ නම් එය එම්වීසී වැනි ය, ආකෘතිය පමණක් ඩීබී සඳහා සරල ආවරණයක් නොවේ, එය පොහොසත් වන අතර තවත් බොහෝ දේ කළ හැකිය (උදා: දත්ත ප්‍රභව 2 කින් සමස්ත දත්ත, පෝස්ට් API එකට ගැලපෙන පරිදි දත්ත සැකසීම, දත්ත හැඹිලි කිරීම ආදිය):


2
එය ගෘහ නිර්මාණ ගගනගාමී දෘෂ්ටිකෝණයකින් ඔව් ද? සේවා දෘෂ්ටි කෝණයකින් ඔබගේ 2 වන සහ 3 වන ඡේද මට තේරුම් ගත හැකිය, නමුත් අපි කතා කරන්නේ GetUser, CreateUser, IsUserLoggedIn සහ මීට පෙර තනි කේත රේඛා API ඇමතුම් බවට පරිවර්තනය කළ කුඩා කාර්යයන් සිය ගණනක් ගැන ය.
නිබ්ලිපිග්

13
ඔබ එය වෙබ් අඩවියක් ලෙස ලියන බව සිතන්න - එම කුඩා කාර්යයන් සියල්ලම ඔබ සිතන තරම් අන්තර්ක්‍රියාකාරී විය නොහැක, එබැවින් ඔබ ඔබේ පිටුව ගොඩනඟන විට දත්ත ලබාගෙන එය දේශීයව හැඹිලිගත කළ යුතුය (නැතහොත් ඒවා පරණ දත්ත ලෙස සම්මත කරන්න. සේවාදායකයා, පද්ධතියට සුදුසු පරිදි). මෙයින් බොහොමයක් සඳහා, ඔබේ සැලසුම “ඉල්ලුම මත ප්‍රතික්‍රියා කරන්න” සිට “අපේක්‍ෂා කිරීම” දක්වා වෙනස් කළ යුතු නමුත් ඔබේ පද්ධතියෙන් බොහොමයක් API ඇමතුම් ලබා ගනී. ඔබේ API අඩු කැටිති හා දත්ත කේන්ද්‍රීය වන පරිදි සැලසුම් කරන්න, එබැවින් IsUserLoggedOn API ඇමතුමක් විය යුතු නැත, ඔබට අවශ්‍ය වන්නේ “GetUserDetails” ඔබ දේශීයව පරීක්ෂා කළ පසු පමණි.
gbjbaanb

5
මගේ අවසාන රැකියා ස්ථානයේදී අපි මෙම ක්‍රමය භාවිතා කළ අතර එය පුදුම සහගත ලෙස ක්‍රියාත්මක විය. අපගේ ප්‍රධාන නිෂ්පාදනය වෙබ් යෙදුමක් විය, නමුත් අපගේ වෙබ් යෙදුම එහි සියලු දත්ත සඳහා කළ ආකාරයටම වෙබ් සේවා වලට ප්‍රවේශ විය හැකි ඩෙස්ක්ටොප් යෙදුමක් සහ එක්සෙල් ෂීට් පවා නිර්මාණය කිරීමට අපට හැකි වූ අතර, ඊට අමතරව අපගේ සේවාදායකයින්ට එම සේවාවන් නිරාවරණය කිරීමට හැකි විය. ඔවුන්ට එරෙහිව වැඩ සටහන.
කික්

2
මෙන්න තවත් වාසියක්: ඔබට ඔබේ වෙබ් අඩවියේ ගනුදෙනුකරුවන්ට පසුබිම් API හෙළි කළ හැකිය. අපගේ සමාගමෙහි, අපි මෙය සිදු කළ අතර, සමහර විශාල මෘදුකාංග සමාගම් ගනුදෙනුකරුවන් (අපගේ සත්කාරකයේ පසුබිම අත්හදා බැලීමෙන් පසු) පසුපෙළ ස්වයං-සත්කාරක නිෂ්පාදනයක් ලෙස ඔතා ගැනීමට ගෙවා ඇත. නිෂ්පාදිතය මත පදනම්ව, සමහර ගනුදෙනුකරුවන් ෆ්‍රොන්ටෙන්ඩ් වැනියර් ගැන අඩු උනන්දුවක් දක්වන අතර ඔබේ නිෂ්පාදනය ඇත්ත වශයෙන්ම කරන්නේ කුමක්ද යන්න ගැන වැඩි උනන්දුවක් දක්වයි - පසුපෙළ. එය විකිණීමට තවත් නිෂ්පාදනයක්.
රීඩ්

2
වෙබ් සේවා වෙතින් එකම තර්කනය භාවිතා කිරීමද මෙය පහසු කරයි. අපගේ කණ්ඩායම් නිතරම සිතන්නේ අප කිසි විටෙකත් කළ යුතු දෙයක් නැති බවයි ... එය ඒකක පරීක්ෂාව පහසු කරයි.
ps2goat

91

ඔබට API එකක් තැනීමෙන් වැළකී සිටිය නොහැක . ඔබ "හුදෙක් වෙබ් අඩවියක්" ගොඩනඟා ගත්තද, එයට කෙසේ හෝ එහි දත්ත ඔබගේ පසුබිමෙන් ලබා ගැනීමට අවශ්‍ය වනු ඇත. කෙසේ වෙතත් ඔබ මෙය කිරීමට තීරණය කළත් එය ඔබේ සත්‍ය API ය.

මෙය දැන ගැනීමෙන් සැබෑ ප්‍රශ්නය වන්නේ API එකක් ගොඩනඟන්නේද යන්න නොව එය ගොඩනඟන්නේ කෙසේද යන්නයි . ඔබට එය පියාසර කරන විට තාවකාලික දෙයක් ලෙස කළ හැකිය - ඇත්ත වශයෙන්ම, බොහෝ වෙබ් අඩවි හරියටම මේ ආකාරයට ගොඩනගා ඇත- නැතහොත් වෙනත් සන්දර්භයන්හි භාවිතා කළ හැකි වන පරිදි ඔබට එය ප්‍රවේශමෙන් සැලසුම් කළ හැකිය. මෙම සන්දර්භය තුළ තැබීමෙන්, ඔබේ සගයා නිවැරදි බව පැහැදිලිය: ඔබ මුලින්ම API කළ යුතු අතර, ඊට ඉහළින් ඔබේ වෙබ් අඩවිය ගොඩනඟන්න.

එසේ වුවද, ඔබ පෙන්වා දෙන පරිදි මෙය යම් යම් කාරණා ගෙන එයි. ඒවා ඇමතීමට:

ඔබගේ පසුබිම API එකකින් ධාවනය කිරීමට නොහැකි තරම් වියුක්තය. ඔබ එය ඕනෑවට වඩා නම්‍යශීලී කිරීමට උත්සාහ කරන අතර එය පාලනය කළ නොහැකි අවුලක් වනු ඇත.

එය රඳා පවතින්නේ ඔබ එය කරන්නේ කෙසේද යන්න මතය. ජෝර්ජ් පැල්යා සිය විශිෂ් text පා text යෙන් එය විසඳන්නේ කෙසේද යන්න පෙන්වා දෙන පරිදි , බොහෝ විට "වඩාත් පොදු ගැටළුව විසඳීමට පහසු වනු ඇත". මෙය නව නිපැයුම්කරුගේ විරුද්ධාභාසය ලෙස හැඳින්වේ . ක්‍රමලේඛනය සම්බන්ධයෙන් ගත් කල, එය බොහෝ විට ක්‍රියාත්මක වන්නේ උත්සුකයන් වෙන් කිරීමෙනි: ඔබේ පසුබිම එය තබන හා පිටතට ගන්නා දත්තවල ආකෘතිය ගැන තවදුරටත් සැලකිලිමත් විය යුතු නැත, එබැවින් එහි කේතය වඩාත් සරල විය හැකිය. ඔබගේ දත්ත විග්‍රහ කරන්නන් සහ විදැහුම්කරුවන් ඔවුන් නිර්මාණය කරන දත්ත වලට කුමක් සිදුවේද යන්න ගැන තවදුරටත් සැලකිලිමත් විය යුතු නැත, එබැවින් ඔවුන්ද සරල විය හැකිය. ඒ සියල්ල ක්‍රියාත්මක වන්නේ කේතය වඩාත් කළමනාකරණය කළ හැකි කැබලිවලට කඩා දැමීමෙනි.

එම්වීසී තුළ ගොඩනගා ඇති සියලුම දේ භූමිකාවන් සහ සත්‍යාපනය වැනි නිෂ් less ල බව පෙනේ. උදාහරණයක් ලෙස, [බලය පැවරීම] ගුණාංග සහ ආරක්ෂාව; ඔබට ඔබේම දෑ පෙරළීමට සිදුවේ.

ඔවුන්ගේ මෙවලම් ඉගෙනීම ප්‍රතික්ෂේප කරන පුද්ගලයින් සමඟ අනුකම්පා කිරීම අතිශයින් දුෂ්කර බව මම පිළිගනිමි. ඔබ ඒවායේ භාවිතය තේරුම් නොගත් පමණින් ඒවා නිෂ් less ල යැයි අදහස් නොකෙරේ, එයින් නිසැකවම ඔබ ඔබේම දෑ පෙරළා ගත යුතු යැයි අදහස් නොකෙරේ . තරමක් ප්රතිවිරුද්ධ; විකල්පයන් තේරුම් ගන්නා තෙක් ඔබ ඔබේම මෙවලම් පෙරළා නොයා යුතුය , එවිට ඔවුන් කරන ගැටළු වලට (ඔබේම ආකාරවලින් වුවද) විසඳීමට ඔබට සහතික විය හැකිය.

ලිනක්ස් ලිවීමට වඩාත්ම ප්‍රසිද්ධ , නමුත් git ලිවූ ලිනස් ටොවල්ඩ්ස් ගැන සලකා බලන්න : දැන් ලෝකයේ වඩාත්ම ජනප්‍රිය අනුවාද පාලන පද්ධති වලින් එකකි. ඔහුගේ නිර්මාණ තුළ ඇති ගාමක සාධක එක් කිරීමට දැඩි විරුද්ධත්වය විය Subversion (තවත් අතිශය ජනප්රිය VCS , සහ GIT ලියන ලද්දේ එවකට බොහෝ ගුවන් යානයේ ඇති ජනප්රිය); උපසිරැසි ගැන්වීමට හැකි සෑම දෙයක්ම ගැනීමට ඔහු අධිෂ් resolved ාන කර ගත් අතර, හැකි තාක් දුරට එම ගැටලු වෙනස් ආකාරයකින් විසඳීමට ඔහු තීරණය කළේය. මෙය සිදු කිරීම සඳහා, ඔහුට එකම ගැටලු වසම් තේරුම් ගැනීමට සහ වෙනස් ප්‍රවේශයක් ගැනීමට හැකි වන පරිදි, ඔහු විසින්ම උපසිරැසි පිළිබඳ විශේෂ expert යෙකු වීමට සිදුවිය.

නැතහොත්, ඔබේ මෙවලම් ඉගෙන ගැනීමේ ක්‍රියාවලියේදී, ඒවා ප්‍රයෝජනවත් බව ඔබට පෙනී යනු ඇත, ඒවා ප්‍රතිස්ථාපනය කිරීමට අවශ්‍ය නොවේ.

ඔබගේ සියලු API ඇමතුම් සඳහා ආරක්ෂක තොරතුරු අමුණා ඇති අතර ඔබට ටෝකන පද්ධතියක් සහ වොට්නොට් සංවර්ධනය කිරීමට සිදුවේ.

ඔව්. එය එසේ විය යුතුය.

ඔබේ වැඩසටහන මෙතෙක් කරන සෑම කාර්යයක් සඳහාම ඔබට සම්පූර්ණ API ඇමතුම් ලිවීමට සිදුවේ. ඔබට ක්‍රියාත්මක කිරීමට අවශ්‍ය සෑම ක්‍රමයක්ම API එකකින් ඉවත් කළ යුතුය. සෑම පරිශීලකයෙකුටම ලබා ගැනීම / යාවත්කාලීන කිරීම / මකා දැමීම, සහ එකිනෙකාගේ ක්‍රියාකාරිත්වය සඳහා ප්‍රභේදයක් උදා. පරිශීලක නාමය යාවත්කාලීන කිරීම, පරිශීලකයෙකු කණ්ඩායමකට එක් කිරීම යනාදිය. ඒ සෑම එකක්ම සුවිශේෂී API ඇමතුමක් වනු ඇත.

අවශ්‍ය නොවේ. REST වැනි ගෘහ නිර්මාණ ශිල්පය ක්‍රියාත්මක වන්නේ මෙහිදීය . ඔබගේ යෙදුම සමඟ වැඩ කරන සම්පත් සහ එම සම්පත් වලට අදාළ වන අර්ථවත් මෙහෙයුම් ඔබ හඳුනාගෙන, අනෙක් ඒවා ගැන එතරම් කරදර නොවී ඔබ ඒවා ක්‍රියාත්මක කරයි .

ඒපීඅයි වෙත පැමිණෙන විට අතුරුමුහුණත් සහ වියුක්ත පන්ති වැනි සියලු ආකාරයේ මෙවලම් ඔබට අහිමි වේ. WCF වැනි දෑ අතුරුමුහුණත් සඳහා ඉතා සුළු සහයෝගයක් ඇත.

ඊට පටහැනිව, ඔබ API භාවිතා කරන විට අතුරුමුහුණත් වඩා වැදගත් වේ, අඩු නොවේ . ඒවා ඔබ ඉදිරිපත් කරන නිරූපණයන්ගෙන් එළියට එයි. වර්තමානයේ බොහෝ අය මේ සඳහා JSON පදනම් කරගත් ආකෘතියක් නියම කරයි , නමුත් ඔබ එය මනාව සඳහන් කරන තාක් කල් ඔබට අවශ්‍ය ඕනෑම ආකෘතියක් භාවිතා කළ හැකිය. ඔබ ඔබගේ ඇමතුම්වල ප්‍රතිදානය මෙම ආකෘතියට පසුපෙළෙහි විදහා දක්වන අතර, එය ඔබට අවශ්‍ය ඕනෑම දෙයකට විග්‍රහ කරන්න. පොදු කාර්යය කුඩා වන අතර නම්යශීලීභාවයේ වාසි අති විශාලය.

ඔබට පරිශීලකයෙකු නිර්මාණය කරන ක්‍රමයක් ඇත, නැතහොත් යම් කාර්යයක් ඉටු කරයි. ඔබට පරිශීලකයින් 50 ක් නිර්මාණය කිරීමට අවශ්‍ය නම්, ඔබට එය 50 වතාවක් අමතන්න. ඔබ මෙම ක්‍රමය API එකක් ලෙස කිරීමට තීරණය කළ විට ඔබේ දේශීය වෙබ් සේවාදායකයාට නම් කළ හැකි පයිප්ප එයට සම්බන්ධ විය හැකි අතර කිසිදු ගැටළුවක් නැත - ඔබේ ඩෙස්ක්ටොප් සේවාදායකයාටද එය පහර දිය හැකිය, නමුත් හදිසියේම ඔබේ තොග පරිශීලක නිර්මාණයට අන්තර්ජාලය හරහා API එක 50 වතාවක් මිටියෙන් පහර දීම ඇතුළත් වේ. හොඳ නැහැ. එබැවින් ඔබ තොග ක්‍රමයක් නිර්මාණය කළ යුතුය, නමුත් ඇත්ත වශයෙන්ම ඔබ එය ඩෙස්ක්ටොප් සේවාදායකයින් සඳහා නිර්මාණය කරයි. මේ ආකාරයෙන්, ඔබ අවසන් වන්නේ අ) ඔබේ ඒපීඅයි සමඟ එය ඒකාබද්ධ කරන දේ මත පදනම්ව වෙනස් කිරීම සහ ඔබට එය සමඟ කෙලින්ම සම්බන්ධ විය නොහැක, ආ) අතිරේක ශ්‍රිතයක් නිර්මාණය කිරීම සඳහා තවත් බොහෝ දේ කරන්න.

පවත්නා ක්‍රමයක තොග අනුවාදයක් නිර්මාණය කිරීම මා “තවත් බොහෝ වැඩ” ලෙස හඳුන්වන්නේ නැති තරම්ය. පරමාණුකතාව වැනි දේවල් ගැන ඔබ කනස්සල්ලට පත් නොවන්නේ නම්, තොග ක්‍රමයට මුල් පිටපත සඳහා ඉතා තුනී පෙරමුනකට වඩා වැඩි නොවිය හැකිය.

යග්නි . සමාන ලෙස ක්‍රියාත්මක වන යෙදුම් දෙකක්, එක් වෙබ් සහ එක් වින්ඩෝස් යෙදුමක් ලිවීමට ඔබ විශේෂයෙන් සැලසුම් නොකරන්නේ නම්, එය විශාල සංවර්ධන කාර්යයන් විශාල ප්‍රමාණයක් වේ.

නැත, යානි (ඔබට දැනටමත් එය අවශ්‍යයි). මම එය ඉහත දක්වා ඇත. එකම ප්රශ්නය වන්නේ එය තුළට කොපමණ නිර්මාණ වැඩ කළ යුතුද යන්නයි.

ඔබට අවසානය දක්වා පියවර තැබිය නොහැකි විට නිදොස් කිරීම වඩාත් අපහසු වේ.

ඔබට අවසානය දක්වා පියවර තැබිය නොහැක්කේ ඇයි?

නමුත් ඊටත් වඩා වැදගත් කරුණ නම්, පහසුවෙන් හඳුනාගත හැකි ආකෘතියකින් දත්ත නැවත නැවතත් ඉදිරියට ගෙනයාම, සියලු සංදර්ශක කප්පාදුව කපා හැරීම ඇත්ත වශයෙන්ම නැඹුරුවීම පහසු කිරීම මිස අමාරු නොවේ.

බොහෝ ඉදිරියට සහ පසුපසට අවශ්‍ය වන ස්වාධීන මෙහෙයුම් රාශියක්, උදාහරණයක් ලෙස සමහර කේතයන් වත්මන් පරිශීලකයා ලබා ගත හැකිය, පරිශීලකයා පරිපාලක භූමිකාවේ සිටිනවාදැයි පරීක්ෂා කරන්න, පරිශීලකයා අයත් සමාගම ලබා ගන්න, වෙනත් සාමාජිකයින්ගේ ලැයිස්තුවක් ලබා ගන්න, ඒ සියල්ල යවන්න විද්‍යුත් තැපෑලක්. ඒ සඳහා බොහෝ API ඇමතුම් අවශ්‍ය වනු ඇත, නැතහොත් ඔබට අවශ්‍ය නිශ්චිත කාර්යය බෙස්පෝක් ක්‍රමයක් ලිවීම, එහිදී එම බෙස්පෝක් ක්‍රමයේ එකම වාසිය වේගවත් වන අතර අවාසිය නම් එය නම්‍යශීලී වීමයි.

REST මෙය විසඳන්නේ වස්තූන්ගේ තනි ගුණාංගවලට වඩා සම්පූර්ණ වස්තු ( සම්පත් , REST න්‍යායේ නියමයන් භාවිතා කිරීම) මත වැඩ කිරීමෙනි . පරිශීලක නාමයක් යාවත්කාලීන කිරීම සඳහා, ඔබ පරිශීලක වස්තුව ලබාගෙන, එහි නම වෙනස් කර, පරිශීලකයා ආපසු හරවන්න. ඔබ පරිශීලක නාමයද වෙනස් කරන අතරම ඔබට වෙනත් වෙනස්කම් කළ හැකිය. වස්තුවක තනි ගුණාංග යාවත්කාලීන කිරීම සඳහා ඔබට එම සියලු ඇමතුම් ඉවත් කළ හැකි නිසා වඩාත් පොදු ගැටළුව විසඳීම පහසු වේ: ඔබ එය පටවා එය සුරකින්න.

සමහර ආකාරවලින්, මෙය දෘඩාංග පැත්තේ ඇති RISC ගෘහ නිර්මාණ මෙන් නොව . RISC සහ CISC (එහි පූර්වගාමියා) අතර ඇති එක් ප්‍රධාන වෙනසක් නම්, CISC ගෘහ නිර්මාණ ශිල්පය මතකය මත කෙලින්ම ක්‍රියාත්මක වන බොහෝ උපදෙස් ඇතුළත් කිරීමට නැඹුරු වන අතර RISC ගෘහ නිර්මාණ ශිල්පය බොහෝ දුරට ලේඛනයේ ක්‍රියාත්මක වීමට නැඹුරු වේ: තනිකරම RISC ගෘහ නිර්මාණ ශිල්පය තුළ, මතකයේ ඇති එකම මෙහෙයුම් LOAD (මතකයෙන් යමක් ලේඛනයකට පිටපත් කරන්න) සහ STORE (ලේඛනයකින් වටිනාකමක් ගෙන එය මතකයට දමන්න).

ඔබ සිතන්නේ මෙයින් අදහස් කරන්නේ ලේඛනයේ සිට මතකයට තවත් බොහෝ සංචාරයන් යාම, එමඟින් යන්ත්‍රය මන්දගාමී වනු ඇති බවයි. නමුත් ප්‍රායෝගිකව, බොහෝ විට සිදුවන්නේ ප්‍රතිවිරුද්ධ දෙයයි: ප්‍රොසෙසරය (සේවාදායකයා) මතකය (සේවාදායකය) වෙත ගමන් කිරීම අතර වැඩි වැඩ කොටසක් කරයි , සහ වේගවත් වීම පැමිණෙන්නේ මෙහිදීය.

දිගු කතාව කෙටිය: ඔබේ සගයා හරි. යා යුතු මාර්ගය මෙයයි. ටිකක් දක්වා-ඉදිරිපිට වැඩ සඳහා විනිමය දී, එය නාටකාකාර ලෙස ඔබේ වෙබ් අඩවිය සඳහා කේතය සරල වනු ඇත හා අනෙකුත් වෙබ් අඩවි සහ යෙදුම් සමඟ වඩා හොඳ ඒකාබද්ධ සක්රීය කරන්න. එය ගෙවීමට වටින මිලකි.

වැඩිදුර කීයවීම:

  1. REST API නිර්මාණය - සම්පත් ආකෘති නිර්මාණය

7
මේවාට පවා යම් ආකාරයක සත්‍ය API ඇත. ඔවුන් වෙනත් බොහෝ සංවර්ධකයින් භීතියට පත් කිරීමට නැඹුරු වන නමුත් ඔවුන් ඒපීඅයි සියල්ලම එක හා සමානයි; ඉතා හොඳින් සැලසුම් කළ ඒවා නොවේ.
The Sponiest

7
එය ඉතා දුර්වල API එකක් බවට පත් කරයි: බොහෝ දුප්පත් එය API ලෙස කිසිසේත් නොසිතයි. එහෙත් එය තවමත් නිර්වචනය කරන්නේ ෆ්‍රොන්ටෙන්ඩ් පසුපෙළ සමඟ අන්තර්ක්‍රියා කරන ආකාරයයි. මෙය API එකක් ලෙස සිතීම එය හොඳින් කිරීමේ වැදගත්කම ගෙදරට ගෙන ඒමට උපකාරී වේ.
ස්පූනිස්ට්

1
මම හිතන්නේ ලිනස් ප්‍රජාව කර්නලය සඳහා භාවිතා කළ වාණිජ බිට්කීපර් ඩීවීසීඑස් භාවිතයට එරෙහිව කැරලි ගැසූ නිසා ලිනක්ස් ප්‍රජාව ගිටාරය සෑදුවා.
gbjbaanb

2
ඔබේ පළමු වාක්‍යය මගේ සියලු ව්‍යාකූලතා දුරු කරයි. මම API යන පදය වෙබ් සේවාවක් සමඟ සම්බන්ධ කළ අතර මා මෙතරම් ව්‍යාකූල වීමට ප්‍රධාන හේතුව එයයි.
නිබ්ලිපිග්

4
AnIanNewson: කේතය සමඟ අතුරුමුහුණත් කිරීමට ක්‍රමයක් තිබේ, එය http ලෙස හැඳින්වේ. එයට අනවශ්‍ය අවශ්‍යතා රාශියක් තිබිය හැකි අතර බොහෝ අනවශ්‍ය දත්ත ආපසු ලබා දිය හැකිය, නමුත් එය පිළිකුල් සහගත API එකක් බවට පත් කරන්නේ එයයි.
jmoreno

63

මම දන්නවා ක්ෂුද්‍ර සේවා සියල්ලම දැන් කෝපාවිෂ්ටයි, නමුත් ඒවා සැමවිටම වටින්නේ නැහැ. ඔව්, ලිහිල්ව සම්බන්ධිත කේතය ඉලක්කයයි. නමුත් එය වඩාත් වේදනාකාරී සංවර්ධන චක්‍රයක වියදමින් නොපැමිණිය යුතුය.

ඔබේ විසඳුම තුළ වෙනම දත්ත ව්‍යාපෘතියක් නිර්මාණය කිරීම හොඳ මැද පදනමක් වනු ඇත. දත්ත ව්‍යාපෘතිය .NET පන්ති පුස්තකාලයක් වනු ඇත. ඔබේ ASP.NET MVC ව්‍යාපෘතිය පසුව දත්ත පුස්තකාලයට යොමු කිරීමක් එකතු කරනු ඇති අතර සියලු ආකෘති දත්ත ව්‍යාපෘතියෙන් ඉවත් කරනු ලැබේ. ඩෙස්ක්ටොප් හෝ ජංගම යෙදුමක් සෑදීමට කාලය පැමිණි විට, ඔබට එකම කේතය සඳහන් කළ හැකිය. එබැවින් එය නිල API එකක් නොවිය හැකි නමුත් එය එකක් ලෙස ක්‍රියා කරයි. ඔබට එය API ලෙස ප්‍රවේශ විය හැකි නම්, ඔබට දත්ත ව්‍යාපෘතියේ එතීම ලෙස ක්‍රියා කරන සරල වෙබ් ව්‍යාපෘතියක් නිර්මාණය කළ හැකිය.

මයික්‍රොසොෆ්ට් විසින් මෙම සංකල්පය ප්‍රවර්ධනය කර ඇති අතර ඒවා අතේ ගෙන යා හැකි පන්ති පුස්තකාල ලෙස හැඳින්වේ .


14
UI ස්තරය තුළ තර්කනය දමා ඇති ව්‍යාපෘතියක් පවත්වා ගැනීමට මට සිදුවී ඇත. ඒ නිසා මට එක දෝෂයක් තිස් වතාවක් නිවැරදි කිරීමට සිදුවිය ("අපට නැවත එකම තර්කනය භාවිතා කිරීමට අවශ්‍ය නම් අපි පිටපත් කර අලවන්නෙමු! API අවශ්‍ය නොවේ"). තාර්කික තට්ටුවක් තිබුනේ නම් (දැන් තිබේ) එය එක් නිවැරදි කිරීමකින් පමණක් ප්‍රමාණවත් වනු ඇත.
SJuan76

1
මෙම පිළිතුර, එම පුස්තකාලය ස්වකීය නුජෙට් පැකේජයට ඔතා ඔබේම නුජෙට් පැකේජ සංග්‍රහ / සේවාදායකයට සත්කාරකත්වය සැපයීමට අමතරව යන්නද හොඳ ක්‍රමයකි. ඔබ සියුම් ජාලයන් ගැන කරදර විය යුතු නැති අතර සියලු ඇමතුම් ත්‍රෙඩ් එකකට (සහ ඒ නිසා වේගවත්) කළ හැකි අතර, ඔබේ පන්තියේ ලිබ් වෙත නිසි අනුවාදයක් නුජෙට් සමඟ හඳුන්වා දීමෙන් අනෙක් කණ්ඩායම් යාවත්කාලීන වන විට නම්‍යශීලී වේ.
ග්‍රෙග් බර්ගාඩ්

34

නැහැ ඔබ නොකළ යුතුයි . එකම පසුබිමකට ප්‍රවේශ වන විකල්ප ඉදිරිපස (ජංගම හෝ ඩෙස්ක්ටොප් යෙදුම් හෝ වෙනම වෙබ් යෙදුම් වැනි) නිර්මාණය කිරීමට ඔබට ක්ෂණික සැලසුම් නොමැති නම්, ඔබ වෙබ් සේවා ස්ථරයක් හඳුන්වා නොදිය යුතුය. යග්නි .

ලිහිල් සම්බන්ධ කිරීම සැමවිටම යෝග්‍ය වේ (ඉහළ සහජීවනය සමඟ), නමුත් එය නිර්මාණ මූලධර්මයක් වන අතර විවිධ සේවාදායකයන් මත භෞතිකව වස්තු වෙන් කළ යුතු යැයි අදහස් නොකෙරේ! නරක ලෙස සැලසුම් කරන ලද සේවා API මඟින් සේවාදායක සීමාවන් හරහා තදින් සම්බන්ධ වීමක් ඇති කළ හැකිය, එබැවින් API එකක් තිබීම ලිහිල් සම්බන්ධ කිරීම සහතික නොකරයි.

අනාගතයේදී සේවා API එකක අවශ්‍යතාවය පැන නැගියහොත් ඔබට එය සැමවිටම හඳුන්වා දිය හැකිය. ඔබ ඔබේ කේතය මනාව ස්ථර කර ඇති තාක් කල් (දත්ත ප්‍රවේශය සහ ව්‍යාපාර තර්කනය පිරිසිදු ලෙස වෙන් කරන ලද UI තර්කනය), එය දැන් පවතින කාලයට වඩා පසුව හඳුන්වා දීමට අපහසු නොවනු ඇත. සැබෑ අවශ්‍යතා සපුරාලීම සඳහා නිර්මාණය කර ඇති විට ලැබෙන සැලසුම වඩා හොඳ වනු ඇත.


සටහන මම උපකල්පනය කරන්නේ ඔබ වෙබ් සේවා API එකක් සෑදිය යුතුද නැද්ද යන්නයි. ප්‍රශ්නය හුදෙක් API යැයි කියනු ඇත, නමුත් API ට පුස්තකාලයක අතුරුමුහුණත ද අදහස් කළ හැකි අතර, ඇත්ත වශයෙන්ම සෑම ස්ථරයකම අර්ථ දැක්වීම අනුව API එකක් ඇත. බොටම් ලයින් යනු ඔබේ ව්‍යාපාර තර්කනය සහ දත්ත ප්‍රවේශ ස්ථර සැලසුම් මට්ටමින් UI තර්කනය ලෙස පිරිසිදු ලෙස වෙන් කළ යුතු නමුත් ඔබට එය අවශ්‍ය නොවන්නේ නම් වෙබ් සේවා ස්ථරයක් හඳුන්වා නොදිය යුතුය.


8
නරක ලෙස නිර්මාණය කර ඇති කිසිවක් හොඳ නැත. ඒපීඅයි එකක් තැනීම වැඩි කාලයක් නොවන අතර එය අනාගතයට සාධනයකි. වර්තමානයේ වෙනස් වීමට අනුවර්තනය වීමේ හැකියාව, ඔබ නොදන්නා නමුත් ඔබ සිතනවාට වඩා ඉක්මනින් පැමිණිය හැකි ඕනෑම අවශ්‍යතාවක් සපුරාලීම සඳහා ශක්තිමත් පදනමක් ගොඩනඟා ගැනීම වඩා හොඳය ...
ලෝරන්ට් එස්.

9
Art බාර්ට්ඩූඩ්: අනාගතයක් නොපැමිණෙන අනාගතයක් සඳහා “අනාගතය සනාථ කිරීම” සඳහා අනවශ්‍ය සංකීර්ණතා හඳුන්වා දීම සම්පත් නාස්ති කිරීමකි.
ජැක් බී

6
Art බාර්ට්ඩූඩ් විසින් api එකතු කිරීම අනිවාර්යයෙන්ම වැඩි කාලයක් වේ. ඔබට වෙනත් ආකාරයකින් හිමිකම් පෑමට හැකි යැයි ඔබ සිතන්නේ කෙසේදැයි අදහසක් නැත.
ඉයන් නිව්සන්

14
"ඔබ වෙබ් සේවා ස්ථරයක් හඳුන්වා නොදිය යුතුය" API! = වෙබ් සේවාව. API පිටුපස ඔබේ ව්‍යාපාර තර්කනය තිබේ නම්, ඔබට එම API එක යම් වේලාවක වෙබ් සේවාවක් ලෙස නිරාවරණය කළ හැකිය . එය ඉහළ අවශ්‍යතාවයක් නොවේ.
සෙලෝස්

2
Ac ජැක්ස්බී: ... එබැවින් ඔබට එය අවශ්‍ය වනු ඇතැයි විශ්වාස නැත්නම් ඔබ සැබවින්ම විශේෂාංග සංවර්ධනය නොකරයි. ඒක තමයි මට YAGNI වෙතින් තේරෙන්නේ. එහෙත් ගෘහ නිර්මාණ ශිල්පය අංගයක් නොවන අතර නරක වාස්තු විද්‍යාත්මක තේරීම් කාලකණ්ණි අසාර්ථකත්වයකට මඟ පෑදිය හැකිය. නැවත වරක් මම සිතන්නේ මෙම සාකච්ඡාව පවා සිදුවිය හැකි බවයි, සමහර විට එය අයවැය, වෙලඳපොලෙන් වෙලඳපොල, සම්පත් හෝ දැනුම නොමැතිකම නිසා නොවේ ... මම හිතන්නේ අපට මේ සම්බන්ධයෙන් එකඟ නොවීමට සම්පුර්ණයෙන්ම එකඟ විය හැකිය. මා සමඟ බොහෝ විට එකම සාකච්ඡාවක් පැවැත්වූ බැවින් ඔබේ අදහස මට වැටහේ ^ _ ^
ලෝරන්ට් එස්.

29

මගේ සමාගමට මේ ආකාරයෙන් ගොඩනගා ඇති එක් යෙදුමක් තිබේ. මුලදී අපව වෙනත් සංවර්ධකයෙකු විසින් නිර්මාණය කරන ඉදිරිපස අන්තයක් සඳහා API සමඟ පසුපස කෙළවරක් තැනීමට කටයුතු කරන ලදි. අනෙක් සංවර්ධකයාට එම ඉදිරිපස කෙළවර සංවර්ධනය කිරීමට නොහැකි වූ විට ඉදිරිපස කෙළවරද තැනීමට අපව පත් කරන ලදි. මෙම ප්‍රවේශයට අනිවාර්යයෙන්ම ප්‍රතිලාභ ඇති අතර විශාල අවාසියක් ඇත: පිරිවැය. ආරම්භක ගොඩනැගීම සැලකිය යුතු ලෙස මිල අධික වනු ඇති අතර නඩත්තු කිරීම සඳහා වැඩි කේතයක් සහ වෙනම පද්ධති දෙකක් යෙදවීම නිසා අඛණ්ඩ නඩත්තු කිරීම වඩා මිල අධික වනු ඇත. අමතර පිරිවැය හේතුවෙන්, මෙය සැමවිටම ව්‍යාපාරික තීරණයක් විය යුතුය, සංවර්ධකයින්ගේ අභිමතය පරිදි නොවේ.

ඒ පිළිබඳ සංඛ්‍යාවක් දැක්වීමට නම්, මෙම ප්‍රවේශය නිසා මා ඉහත සඳහන් කළ ව්‍යාපෘතිය සඳහා 20% වැඩි පිරිවැයක් තක්සේරු කරමි. ඔබ වැඩ කරන්නේ කුමන ආකාරයේ සමාගමක් සඳහාද යන්න ඔබ විස්තර නොකරයි, නමුත් ඔබ ඔවුන්ගේ නිෂ්පාදනය ගොඩනැගීම ආරම්භ කරන්නේ නම් අමතර පිරිවැය ඔබේ නිෂ්පාදනය කරන අමතර විශේෂාංග කිහිපයක් නැව්ගත කිරීම අතර වෙනස විය හැකිය. සාර්ථකයි.

අවම වශයෙන් විශ්වීය නොවීමට තවත් හේතුවක් නම්, ඔබ එම දෙවන අතුරුමුහුණත නිර්මාණය කිරීමට තීරණය කළහොත් හෝ ක්‍රියාකාරීත්වයේ සිතියම් ගත කිරීම කලාතුරකිනි. ඔබ ජංගම යෙදුමක් සාදන්නේ නම්, උදාහරණයක් ලෙස, ඒවාට අඩු විශේෂාංග ඇත. මෙයින් අදහස් කරන්නේ ඔබගේ සමහර API ක්‍රම නැවත භාවිතා නොකරන බවයි. එබැවින් ඔබේ සගයා සමඟ සම්මුතියක් විය හැක්කේ ඔබ අතර වඩාත් තීරණාත්මක / විවේචනාත්මක ඇමතුම් තීරණය කර ඒවා API එකකට එක් කිරීම සහ අනෙක් සියල්ල සඳහා වඩාත් සාම්ප්‍රදායික ක්‍රම භාවිතා කිරීමයි.

සලකා බැලිය යුතු තවත් කරුණක් නම්, ඔබේ සගයා පවසන්නේ ඔබේ පවතින කේතය නැවත භාවිතා කිරීමට ඔබට නොහැකි බවයි, ඔබේ ව්‍යාපාර තර්කනයෙන් යම් වෙන්වීමක් තිබේ නම් එය සත්‍ය නොවේ. ඔබේ අභ්‍යන්තර ඒපීඅයි වටා තුනී වෙබ් සේවා ආවරණයක් සෑදිය යුතුය, එය විශේෂයෙන් විශාල කාර්යයක් නොවේ. කිසිදු වෙනසක් නොමැතිව ඔබට කෙසේ හෝ වෙනත් ඉදිරිපස කෙළවරක් සඳහා වෙබ් සේවා ස්ථරයක් නැවත භාවිතා කළ හැකි යැයි සිතීම බොළඳ ය.


22

එය යෙදුම් වර්ගය සහ ඔබ සිටින වෙළඳපල වර්ගය මත රඳා පවතී.

මේ ආකාරයෙන් යෑමෙන් වෙළඳාම් සහ ප්‍රතිලාභ තිබේ. එක් ක්‍රමයක් අනෙක් ක්‍රමයට වඩා හොඳ බව පැහැදිලි පිළිතුරක් නොවේ.

මම පෞද්ගලික අත්දැකීම් වලින් කතා කරන්නම්. 2007 දී මා වැඩ කරන කේත පදනම මෙම දිශාවට ගෙන යාමට තීරණය කළේ මමයි. එම කේත පදනම දැන් පේළි මිලියනයක අනුපිළිවෙලකට කොහේ හරි තිබේ, එයින් අඩක් සේවාදායක කේත විශාල වෙබ් සේවාවක් පිටුපස සැඟවී ඇත. ඒපීඅයි හි, අනෙක් භාගය සේවාදායකයින්, ඩෙස්ක්ටොප් ස්වදේශික, ඩෙස්ක්ටොප් වෙබ්, ජංගම, පසු-අන්ත අනුකලනයන් යනාදියයි. . ඊට සම්බන්ධ වෙළඳාම් කිහිපයක් සඳහන් කිරීමට මට ඉඩ දෙන්න.

ප්‍රතිලාභ

  • නම්‍යශීලී බව. ඩෙස්ක්ටොප් අත්දැකීම් වැඩි දියුණු කිරීම සඳහා ජංගම යෙදුමක් තැනීමේ ඉල්ලීමක් හෝ SAP හි පසුපස අන්තය සමඟ ඒකාබද්ධ වීමට කරන ඉල්ලීමක් වේවා, ඔබට දැනටමත් ඇමතුමක් ලබා ගැනීමට API එකක් ඇති විට ඒ සියල්ල පහසු වේ. ඔබට මෙම ඉල්ලීම් ප්‍රමාණවත් වූ විට, ඔබ ically න්ද්‍රීයව ඒපීඅයි වෙත පරිණාමය වනු ඇති අතර, එකම ප්‍රශ්නය වන්නේ එය ඉදිරිපිට සම්මත වෙබ් සේවාවක් තිබේද, නැතහොත් එය වෙබ් සේවා ගැලපෙන පරිදි සකස් කරන ලද අභ්‍යන්තර ඒපීඅයි එකක්ද යන්නයි.

  • පරිමාණය (කණ්ඩායමේ). අපගේ නඩුවේදී අපට විවිධාකාර සංවර්ධකයින්ගේ කණ්ඩායම් ඇත. විවිධ කණ්ඩායම් සමඟ කතා කරන, අවශ්‍යතා සාරාංශ කරන, සහ එයින් සර්ව-කාර්ය API එකක් ගොඩනඟන විශේෂිත API කණ්ඩායම් පවා අප සතුව ඇත. ඒපීඅයි එකට ඉහළින් මිනිසුන් දේවල් ගොඩනඟන බව අපට තවදුරටත් නොකියන තැනට එය පත්වී ඇති අතර, එය කරන සියල්ලන්ම අපගේ සමාගම වෙනුවෙන් ක්‍රියා නොකරයි.

  • ආරක්ෂාව. ඔබගේ කේත රචනයේ අනාරක්ෂිත සහ ආරක්ෂිත කොටස් අතර පැහැදිලි බෙදීමක් තිබීම ආරක්ෂාව පිළිබඳ තර්කානුකූලව උපකාරී වේ. UI සහ පසුපස කේතය එකට පටලවා ගැනීම කාරණා ව්‍යාකූල කරයි.

වෙළඳාම

  • නම්‍යශීලී බව. ඒපීඅයි තුළට යමක් “නිසියාකාරව” ගොඩ නැගීමට ඔබ කළ යුතුය. විශේෂිත ගැටළුවක් විසඳීම සඳහා UI කේතය තුළ සිට DB විමසුමක් ඉක්මනින් ක්‍රියාත්මක කළ නොහැක. එසේම, ඇත්ත වශයෙන්ම නැවත භාවිතා කළ හැකි API බොහෝ භාවිත අවස්ථා සැලකිල්ලට ගත යුතු අතර ඉක්මන් විසඳුම සාමාන්‍යයෙන් වැරදි විසඳුම වේ. ඒපීඅයි පරිණාමය වීමට අඩු නම්යශීලී බවට පත්වේ, විශේෂයෙන් දැනටමත් බොහෝ සේවාදායක කේත එහි ඇති හෙයින් (අපි එම හේතුව නිසා අනුවාදගත කරන ලද ඒපීඅයි වෙත මාරු වෙමු).

  • මූලික සංවර්ධන වේගය. සැකයකින් තොරව API- පළමුව සංවර්ධනය කිරීම මන්දගාමී වේ. ඔබ එය නැවත දිනා ගන්නේ ඔබට අවශ්‍ය තරම් සේවාදායකයින් API මත ගොඩනගා ඇති විට පමණි. නමුත් ඔබේ API ප්‍රමාණවත් තරම් සාමාන්‍ය බවට පරිණාමය වීමට පෙර ඔබට විවිධ සේවාදායක ක්‍රියාත්මක කිරීම් 3 ක් අවශ්‍ය බව ඔබට පෙනී යයි. අපගේ ආරම්භක API සැලසුම් බොහොමයක් වැරදි බව අපට පෙනී ගිය අතර වෙබ් සේවා ගොඩනඟන්නේ කෙසේද යන්න පිළිබඳ අපගේ මාර්ගෝපදේශ දැඩි ලෙස සංශෝධනය කිරීමට සිදුවිය.

රතු හුරුල්ලන්

ඔබ මේවායින් පොකුරක් සඳහන් කළා. ඒවා ප්‍රායෝගිකව වැදගත් නොවේ.

  • සාරාංශය. ඔබේ API සේවය සඳහා අවශ්‍ය සියලුම භාවිත අවස්ථා ආවරණය කිරීමට තරම් වියුක්ත බවට පත්වේ, ඊට වඩා වැඩි නොවේ. වෙබ් සේවා නොමැතිව වුවද ඔබට මෙය සිදු කරන අභ්‍යන්තර API එකක් හෝ අනුපිටපත් කේත රාශියක් ඇත. මම අනුපිටපත් වලට වඩා වියුක්ත කිරීමට කැමතියි.

  • සේවාදායක පැත්තේ එම්වීසී තොගය අතහැර දැමීම. මේ දිනවල සෑම පද්ධතියකටම පාහේ ටික වේලාවකට පසු ජංගම යෙදුමක් අවශ්‍ය වේ. ඔබ එම ජංගම යෙදුමට සරිලන සේ වෙබ් සේවා ගොඩනඟන විට, කෙසේ හෝ API සන්දර්භයක් තුළ සත්‍යාපනය සහ බලය පැවරීම කරන්නේ කෙසේදැයි ඔබට සොයා ගැනීමට සිදුවේ. ඔබට එය කළ හැකි එක් ක්‍රමයක්, ඔබේ වෙබ් සේවාවන් තුළ එය කරන ආකාරය පමණක් ඇති විට එය ඇත්ත වශයෙන්ම අඩු කාර්යයකි.

  • තොග මෙහෙයුම්. සාමාන්‍යයෙන් විසඳනු ලබන්නේ පසුගාමී රැකියාවක් දියත් කර තත්ව විමසුම සඳහා රැකියා හැඳුනුම්පතක් ලබා දෙන තොග API නිර්මාණය කිරීමෙනි. එය එතරම් විශාල ගනුදෙනුවක් නොවේ.

  • නිදොස්කරණය. සමස්තයක් ලෙස පද්ධතිය නිරාකරණය කිරීම තරමක් පහසු වූ බව මට පෙනී ගියේය. ඔබට තවමත් ඉදිරිපස සහ පසුපස කේත දෙකෙහිම බ්‍රේක්පොයින්ට් සැකසිය හැකිය, එබැවින් ප්‍රායෝගිකව පියවර තැබීම එතරම් අපහසු නොවන අතර ස්වයංක්‍රීය api පරීක්ෂණ ගොඩනඟා ගැනීමට සහ නිෂ්පාදන පද්ධති අධීක්ෂණය කිරීම සඳහා api උපකරණය කිරීමට ඔබට හැකියාව ලැබේ.

  • ස්වාධීන මෙහෙයුම් ගොඩක්. එය ඔබ දේවල් සැලසුම් කරන ආකාරය පිළිබඳ කාරණයකි. පිරිසිදු CRUD API එකක් ලබා ගැනීමට ඔබ අවධාරනය කරන්නේ නම්, ඔව්, ඔබ මෙම ගැටලුවෙන් පීඩා විඳිනු ඇත. නමුත් සාමාන්‍යයෙන් CQRS API වැඩි දියුණු කිරීම හොඳ අදහසක් වන අතර, සේවා ඉදිරිපස අන්තයක් වන අභ්‍යන්තර API එකක් ඔබ සතුව ඇති බවට ඔබ සහතික කර ඇත්නම්, එම විශේෂිත API සඳහා සේවාවන් තැනීම සඳහා ඔබට එම අභ්‍යන්තර API පහසුවෙන් නැවත භාවිතා කළ හැකිය. දර්ශනය.

සාරාංශයකින්

ප්‍රමාණවත් තරම් වෙනස් සන්දර්භයන්හි භාවිතා වන පද්ධතියක, ඒපීඅයි ස්වාභාවිකවම පරිණාමය වනු ඇත්තේ එය සියලු අවශ්‍යතා සපුරාලීමට ඇති පහසුම ක්‍රමය වන බැවිනි. නමුත් නියත වශයෙන්ම යග්නි සිද්ධියක් සිදුවෙමින් පවතී. වෙළඳාම් කපා හැරීම් ඇති අතර එය අර්ථවත් වන තුරු එය තේරුමක් නැත. වැදගත්ම දෙය නම් නිෂ්පාදනයේ විකාශනය වන අවශ්‍යතා සපුරාලීම සඳහා වාස්තු විද්‍යාවේ විවිධ ප්‍රවේශයන් කෙරෙහි විවෘත මනසක් තබා ගැනීමයි.


සිත්ගන්නාසුලු කියවීම, ඒපීඅයි නිර්මාණය කිරීමේදී ඔබ කළ වැරැද්ද සහ ඔබ ඉගෙන ගත් දේ විස්තරාත්මකව විස්තර කළ හැකිද?
aaaaaaaaaaa

3
ප්‍රධාන වැරදි තුන නම්: (1) ප්‍රාථමික යූඅයි හි අවශ්‍යතාවන්ට වඩා අධික ලෙස මුදල් යෙදවීම, (2) සැසි භාවිතා කරමින් විවිධ ඉල්ලීම් හරහා රාජ්‍යය ගොඩනැගීම (අපි ක්‍රමයෙන් සැසිවාර රහිතව සිටිමු), සහ (3) උත්පාදනය සඳහා පමණක් සහාය වීම පරිශීලක වින්‍යාසගත කළ හැකි කේතයක් බොහෝ විට වඩා හොඳ හඳුනාගැනීමක් වන db id හඳුනාගැනීමක් ලෙස (බාහිර පද්ධති සමඟ ඒකාබද්ධ කිරීම සඳහා සාමාන්‍යයෙන් ඔවුන්ට අවශ්‍ය වන්නේ හඳුනාගැනීම් අපේ පද්ධතියට උඩුගත කිරීමට ය. එම තිදෙනාම එක්ව දුර්වල ලියකියවිලි සහ උදව් කළ නොහැකි වැරදි පණිවුඩ ආධාරයෙන් api භාවිතා කිරීමට නොහැකි විය.
ජෝරි සෙබ්‍රෙක්ට්ස්

10

ඔබේ සගයා විස්තර කරන්නේ සේවා නැඹුරු ගෘහ නිර්මාණ ශිල්පයකි. මෙය විශාල ලෙස පරිමාණය කළ හැකි, පරීක්ෂා කළ හැකි සහ කේත කිරීමට හොඳ ක්‍රමයක් විය හැකි නමුත් එය සැබවින්ම රඳා පවතින්නේ ඔබ සාදන දේ මත ය.

SOA වෙත සැලකිය යුතු වාසි කිහිපයක් ඇත, ඒවා ගණන් කිරීමට මම උත්සාහ කරමි:

පරිමාණය

ඔබගේ පසුපස කෙළවර විසන්ධි වී ඇති බැවින්, ඔබේ ඉදිරිපස කෙළවර සැකිලි මාලාවක් බවට පත්වේ, පැතලි ලිපිගොනු පවා. ඕනෑම සීඩීඑන් ආයතනයකින් පැතලි ලිපිගොනු ඉතා ඉක්මණින් හා ලාභදායී වේ. ඒවා අවම කර ස්ථිතික HTML වලට පෙර සැකසිය හැකි අතර පසුව දත්ත සේවාදායකයින්ගෙන් පිරී ඇත.

ඔබගේ API එක ස්ථාවරව පැවතිය යුතුය, නමුත් ඔබ දැනට පවතින තාක්‍ෂණය ඉක්මවා ගියහොත් ඔබේ තොගය කඩ නොකර වේගවත් තාක්‍ෂණයකට මාරු කළ හැකිය. උදාහරණයක් ලෙස ඔබට එය Go හි නැවත ප්‍රතිනිර්මාණය කළ හැකිය. ඔබට එය කැබැල්ලක් නැවත ගොඩනඟා සේවාදායකයන් හරහා බර පැතිරවිය හැකිය. අතුරුමුහුණත එලෙසම පවතින තාක් කල් තාක්‍ෂණය වියුක්ත වේ.

පරීක්ෂණ හැකියාව

MVC සාමාන්‍යයෙන් පිරිසිදුව ආරම්භ වන නමුත් ප්‍රායෝගිකව පාලකයන් තනි සම්පතක් කෙරෙහි අවධානය යොමු කරන්නේ කලාතුරකිනි. ඔබගේ පාලක ක්‍රම මඟින් වැඩි වැඩියෙන් ඒවා පරීක්‍ෂා කළ හැකි තරම් අඩු වේ.

API එකක් මෙම ගැටළුව මඟහරවා ගනී. සෑම API ඇමතුමක්ම සම්පතක් ඇද එය සේවය කරයි. පිරිසිදු හා පරීක්ෂා කළ හැකි.

උත්සුකයන් වෙන් කිරීම සහතික කරයි

ඔබේ ඉදිරිපස සහ පසුපස කෙළවර සම්පූර්ණයෙන්ම දික්කසාද වී ඇත. ඔබට ඉදිරිපස කෙළවර වෙනත් සංවර්ධකයෙකුට හෝ නිර්මාණකරුවෙකුට ලබා දිය හැකිය. මෙය MVC වෙනත් මට්ටමකට ගෙන යනු ලැබේ. මට විශ්වාසයි ඔබට එම්වීසී අත්හරින්න අවශ්‍ය නැති බව. SOA යනු MVC නමුත් වැඩි වැඩියෙන්.

අවාසි

ඇත්ත වශයෙන්ම සමහර අවාසි ඇත. මොනොලිත් එකක් සමඟ යෑමට බොහෝ විට වේගවත් වේ. එය ඔබ පුරුදු වී ඇති දේ විය හැකිය. එය ඔබේ තොගයට වඩාත් හොඳින් ගැලපේ. මොනොලිත් සෑදීම සඳහා ඔබේ මෙවලම් ප්‍රශස්තිකරණය කළ හැකිය.

මේ කිසිවක් විශේෂයෙන් මගේ මතය අනුව හොඳ හේතු නොවන අතර ඒවා ඔබට අදාළ වන්නේ නම් නැවත ලබා ගැනීම ගැන සලකා බැලීමට ඔබ කැමති විය හැකිය.


මෙතෙක් පැහැදිලි පිළිතුර මෙයයි.
ටෝනි එනිස්

7

මතභේදාත්මක කාරණය වන්නේ ඔබ ඒපීඅයි එකක් භාවිතා කළ යුතුද යන්න නොව ඇත්ත වශයෙන්ම “ඒපීඅයි” යනු කුමක්ද යන්නයි. සැලසුම් කරන ලද API භාවිතා කිරීම සඳහා ඇති එකම විකල්පය වන්නේ අහඹු ලෙස කේත අවුලක් වන API එකක් භාවිතා කිරීමයි. ඔබ ලියන්නේ ඒපීඅයි මගින් දේවල් "නම්‍යශීලී" වන අතර එමඟින් දේවල් පාලනය කළ නොහැකි වනු ඇත. මෙය API යනු කුමක්ද යන්න පිළිබඳ පූර්ණ හා පූර්ණ වරදවා වටහා ගැනීමකට යොමු කරයි. එම වරදවා වටහා ගැනීම ඔබ සහ ඔබේ සහායකයා අතර බෙදා නොගන්නේ නම්, ඔබ සම්පූර්ණයෙන්ම වෙනස් දේවල් ගැන වාද කිරීමෙන් බොහෝ කාලයක් නාස්ති කරයි.

මනාව නිර්වචනය කරන ලද API භාවිතා නොකිරීමෙන් ඔබට අවශ්‍ය ඕනෑම දෙයක් කළ හැකිය. අර්ථ දැක්වීම අනුව මෙය වඩාත් නම්‍යශීලී විකල්පයයි. එසේම, අර්ථ දැක්වීම අනුව "ඔබට අවශ්‍ය ඕනෑම දෙයක් කරන්න" තවමත් API එකකි. මෙම පමණක්API එකක කාර්යය නම්යශීලීභාවය ඉවත් කිරීමයි. නම්‍යශීලී බව ඉවත් කිරීමෙන් හොඳ API එක සමාන ආකාරයකින් සමාන දේ කිරීමට පරිශීලකයෙකු දිරිමත් කරයි.

ඇත්ත වශයෙන්ම නරක API එකකට ඕනෑවට වඩා හෝ අඩු නම්යතාවයක් ලබා දිය හැකිය, නැතහොත් දෙකම එකම වේලාවක. සැබවින්ම දුර්වල ලෙස නිර්මාණය කරන ලද API එකකට “ඕනෑම දෙයක් යනවා” ප්‍රවේශයට වඩා වේගයෙන් ව්‍යාපෘතියක් විනාශ කළ හැකිය. කෙසේ වෙතත්, හොඳම පුහුණුව වන්නේ ඔබේ යෙදුම සමඟ ඒපීඅයි සංවර්ධනය කර පරිණාමය කරන දක්ෂ ක්‍රමලේඛකයින් සිටීමයි.

උදාහරණයක්

Independent බොහෝ ඉදිරියට සහ පසුපසට අවශ්‍ය වන ස්වාධීන මෙහෙයුම් රාශියක්, උදාහරණයක් ලෙස සමහර කේතයන් වත්මන් පරිශීලකයා ලබා ගත හැකිය, පරිශීලකයා පරිපාලක භූමිකාවේ සිටිනවාදැයි පරීක්ෂා කරන්න, පරිශීලකයා අයත් සමාගම ලබා ගන්න, වෙනත් සාමාජිකයින්ගේ ලැයිස්තුවක් ලබා ගන්න, ඒවා යවන්න සියල්ල විද්‍යුත් තැපෑලකි. ඒ සඳහා බොහෝ API ඇමතුම් අවශ්‍ය වනු ඇත, නැතහොත් ඔබට අවශ්‍ය නිශ්චිත කාර්යය බෙස්පෝක් ක්‍රමයක් ලිවීම, එහිදී එම බෙස්පෝක් ක්‍රමයේ එකම වාසිය වේගවත් වන අතර අවාසිය නම් එය නම්‍යශීලී වීමයි.

හොඳ API එකකට මේ සඳහා අවශ්‍ය වන API ඇමතුම් ගණන 1 ක් විය හැකිය. ඔව්, එය නම්‍යශීලී ය, නමුත් එය නම්‍යශීලී වීමට ඔබට අවශ්‍ය ඇයි?


7

මෙහි හොඳ පිළිතුරු රාශියක් ඇත, එබැවින් මම මගේ ක්‍රියාත්මක කිරීමේ අත්දැකීම් එක් කරමි.

මම දේවල් කරන ආකාරය මෙයයි:

  • සියලු / පමණක් ඩීබී අන්තර්ක්‍රියා හසුරුවන දත්ත සමුදා ප්‍රවේශ ස්ථරයක් සාදන්න (සාමාන්‍යයෙන් අත්පොත SQL වේගය සහ පාලනය සඳහා භාවිතා කරයි, ORM නැත) . ඇතුළු කරන්න, යාවත්කාලීන කරන්න, මකන්න, තෝරන්න ...
  • මට අවශ්‍ය API කාර්යයන් නිරාවරණය කරන / බලාත්මක කරන interface( virtual class) සාදන්න . ඒවා ක්‍රියාවට නංවන විට, ප්‍රති special ල ලබා ගැනීම සඳහා ඉහළ විශේෂිත DBAL කාර්යයන් භාවිතා කරනු ඇත. ඒපීඅයි සම්පාදක මට්ටමින් බලාත්මක කිරීමටද එය මට උපකාරී වන අතර එමඟින් සර්වර් + ඒපීඅයි ක්‍රියාත්මක කිරීම තුළ සියලු කාර්යයන් ඇති බව සහතික කරමි.
  • අතුරුමුහුණත ක්‍රියාත්මක කරන දෙවන ස්ථරයක් සාදන්න (මෙය සත්‍ය API ය) සහ ආරක්ෂක සීමාවන් බලාත්මක කරයි. ඔබ මෙහි බාහිර API සමඟ ද අන්තර්ක්‍රියා කරයි.
  • දුරස්ථව ප්‍රවේශ විය හැකි API එකක් (SOAP, JSON වැනි ) නොයා වෙබ් අඩවිය දෙවන ස්ථරය කෙලින්ම (කාර්ය සාධනය සඳහා) භාවිතා කරයි .
  • ස්වාධීන සේවාදායකයක් යනු අතුරු මුහුණත ක්‍රියාත්මක කරන අතර දෙවන ස්ථරය බාහිර ඩෙස්ක්ටොප් / ජංගම සේවාදායකයින්ට (වෙබ් අඩවි නොවන ප්‍රවේශය) දුරස්ථව ප්‍රවේශ විය හැකි API ලෙස නිරාවරණය කරයි . එය කරන්නේ ඉල්ලීම් විකේතනය කිරීම සහ ප්‍රතිචාර කේතනය කිරීම සහ සේවාදායකයින් කළමනාකරණය / විසන්ධි කිරීම පමණි. වෙනත් සම්බන්ධිත සම වයසේ මිතුරන් විසින් ජනනය කරන ලද සිදුවීම් පිළිබඳව ගනුදෙනුකරුවන්ට විශාල වශයෙන් දැනුම් දීම සඳහා එය තල්ලු කිරීමේ හැකියාවන්ට සහය දක්වයි (වෙබ් අඩවියකට සාමාන්‍යයෙන් අවශ්‍ය නොවන ක්‍රියාකාරිත්වය) .

එබැවින්, තාක්ෂණික වශයෙන්, API යනු දෙවන ස්ථරයයි. ඔබ එය වෙබ් අඩවිය සමඟ කෙලින්ම භාවිතා කර දුරස්ථ සේවාදායකයින්ට සේවාදායකයක් හරහා නිරාවරණය කරයි. කේතය නැවත භාවිතා කරන අතර නැවත භාවිතා කළ හැකි කේත කැබැල්ලක් කිසි විටෙකත් පේළියේ නොමැත. (මෙම රීතිය අනුව ජීවත් වී මියයන්න, සියල්ල නියමයි) නඩත්තු කිරීමට, පරීක්ෂා කිරීමට ... සියල්ලට උපකාරී වේ.

ඔබ කිසි විටෙකත් වෙබ් අඩවිය ඩෙස්ක්ටොප් / ජංගම API සේවාදායකයට සම්බන්ධ නොකරයි (ඔබේ වෙබ් අඩවිය AJAX සහ JSON මත ක්‍රියාත්මක නොවන්නේ නම්) . නමුත් වෙබ් අඩවිය සලකුණු කිරීමේදී ගතික අන්තර්ගතයන් ලබා දෙන්නේ නම්, අතරමැදි API හරහා යාම ඔබේ කාර්ය සාධනයට වෙඩි තබයි. වෙබ් අඩවිය වේගවත් විය යුතුය! දුරස්ථ සේවාදායකයින්ගේ ප්‍රවේශය ඉතා මන්දගාමී විය හැකිය.

PS : ඔව්, නඩත්තු කිරීම ටිකක් සංකීර්ණ නිසා තවත් රෝද එකට වැඩ කරන නමුත් දිගු කාලීනව එය පහසු වේ. එබැවින් ඔබේ ව්‍යාපෘතිය ටික කලක් ජීවත් වීමට අදහස් කරන අතර තරමක් සංකීර්ණ නම්, සෑම විටම API එකක් තබා ගන්න. සෑම ස්ථරයක්ම තනිවම පරීක්ෂා කිරීමද පහසුය.


එය තරමක් සිසිල් වන අතර බොහෝ අර්ථවත් කරයි, විශේෂයෙන් ඔබේ API වර්ගයේ කාර්යයන් සඳහා අතුරු මුහුණතක් යොදන්න. මම ඊළඟ වතාවේ ව්‍යාපෘතියක් නිර්මාණය කරන විට මෙම සැකසුම උත්සාහ කරමි!
නිබ්ලිපිග්

4

ඔහු කිව්වා අපේ කේතය ඕනෑවට වඩා තදින් බැඳී ඇති බව. උදාහරණයක් ලෙස, අපට ඩෙස්ක්ටොප් යෙදුමක් අවශ්‍ය නම්, අපගේ පවතින කේතය භාවිතා කිරීමට අපට නොහැකි වනු ඇත.

හොඳයි, එහෙම නේද? එසේ නොවේ නම් එය ඉතා අදාළ නොවන ප්‍රකාශයකි.

මම කියන්නේ, ඔබ 2015 දී නව යෙදුමක් තැනීමට යන්නේ නම්, ඒපීඅයි සම්බන්ධ වන පරිශීලක අතුරුමුහුණතක් ඇති දෙයක් ගැන බැරෑරුම් ලෙස සොයා බලන්න. පැහැදිලි පිරිවැය පමණක් නොව පැහැදිලි ප්‍රතිලාභද ඇත.

එහෙත් ඔබ යම් තිබේ නම් දැනට පවතින (දුර මට කියන්න පුළුවන් ලෙස) විවිධ අතුරු මුහුණත් කිහිපයක් කිසිදු කොන්ක්රීට් සැලසුම් සමඟ අඩවිය, එවිට ඔහුගේ අදහස් හුදෙක් අදාල නොවේ.


4

කෙටි අනුවාදය: ඔබගේ පාලකය කුමක් වුවත් API ලදායී ලෙස API එකක්; ASP.NET එය අපැහැදිලි වුවත්.

දිගු අනුවාදය:

බියර් පිළිබඳ තොරතුරු සපයන සහ විකල්පයක් ලෙස ඔබට විකුණන මූලික MVC වෙබ් යෙදුමක් ගැන සිතන්න. මාර්ග මොන වගේද?

/sign_in
/sign_out
/beer
/beer/{beer_name}
/order
/order/{order_number}

සාමාන්‍ය වෙබ් යෙදුමක, වැනි අමතර මාර්ග කිහිපයක් තිබිය හැක:

/beer/new
/beer/{beer_name}/edit
/beer/{beer_name}/delete
/order/new
/order/{order_number}/edit
/order/{order_number}/delete

වෙබ් API එකක ඒවා HTTP ක්‍රමයෙන් අනුමාන කරන බැවින් ඒවා අවශ්‍ය නොවේ.

ඉහත සමමිතිය සැලකිල්ලට ගත් විට, මෙය ඔබගේ API සහ පාලකය එකිනෙකට සමීප බැවින් ඒවා එකම දේ විය හැකි තරමට බලවත් අවස්ථාවක් වනු ඇතැයි මම සිතමි.

යම් කැණීම් කිරීමෙන් පසුව, ඔබ භාවිතා කරන ASP.NET හි කුමන අනුවාදය මත පදනම්ව මෙය ඔබගේ තත්වය විය හැකි බව මම තීරණය කර ඇත්තෙමි . පැරණි එම්වීසී 5 සහ ඊට පෙර ක්‍රියාත්මක කිරීම් දෙක හොඳින් ඒකාබද්ධ කිරීමට සම්මුති හා අතුරු මුහුණත නොමැති වීම. පැරණි අනුවාද වලදී, වෙබ් යෙදුම් ප්‍රතිලාභ මඟින් දර්ශනයක් ජනනය කරන අතර API විසින් HttpResponse ලබා දෙයි. කෙසේ වෙතත්, කෙසේ වෙතත්, ඔවුන් හරියටම එකම ප්‍රතිචාරයක් අර්ථ නිරූපණය කරයි.

ඔබ MVC 6 භාවිතා කරන්නේ නම්, ඔබ දෙදෙනාම ඒකාබද්ධ පාලක පන්තියකට ඇතුළත් වන අතර එමඟින් ලැබෙන ප්‍රතිලාභ පිළිබඳව බුද්ධිමත් විය හැකිය. මෙම ආකෘතිය සඳහා හොඳ ASP උදාහරණ කේතයක් මට හමු වී නැත, නමුත් එකම රටාවක් සහිත රේල්ස් කේත කිහිපයක් මට හමු විය. ඩයස්පෝරා ව්‍යාපෘතියේ "කැමති" සඳහා මෙම පාලකය සලකා බලන්න . එක් එක් ජාල පාලකය ක්රමය "සේවයක් සමුළුව" විසින් අර්ථ මාර්ග ඇත මෙතන , එම මුදල වූ API හි LCRUD කිරීමට.

ඔබ ක්‍රියාත්මක කිරීම් කියවන්නේ නම්, සෑම කෙනෙකුම HTML, ජංගම HTML හෝ JSON වලට ප්‍රතිචාර දැක්විය හැකිය. මෙය, අදහස් සෙවීමේ සම්මුතියක් සමඟ ඒකාබද්ධව, වෙබ් යෙදුම සහ වෙබ් API සම්පූර්ණයෙන්ම ඒකාබද්ධ කරයි. සෑම ක්‍රමයක්ම එක් එක් ප්‍රතිචාරය සැබවින්ම ලබා නොදෙන බව ඔබ සටහන් කරනු ඇත (එය අර්ථවත් කරයි, UI හට API අවශ්‍ය නොවන ක්‍රම අවශ්‍ය විය හැකි අතර අනෙක් අතට).

මෙය සම්බාධනය නොගැලපීමකි. මන්දයත් ඒඑස්පී නෙට් වර්ගයේ මේ සියල්ල ප්‍රමාද වී ඇති අතර රේල්ස් යම් කාලයක් තිස්සේ සමමිතිය වැලඳගෙන එය ඉතා පැහැදිලිව දක්වයි.

සමපේක්ෂනය:

ඔබ භාවිතා කරන සහකාර පොලිස් අධිකාරී අනුවාදය මත පදනම්ව, ඔබේ සහායකයා බොහෝ විට හරි සහ වැරදි විය හැකිය. පැරණි එම්වීසී අනුවාදය යටතේ, ඒපීඅයි සහ ඇප් අතර වෙනස බොහෝ විට ඒපීඅයි ඉහළට ගොඩනගා ගැනීම “හොඳම පුරුද්දක්” බවට පත් කළේ ඒඑස්පී නෙට් ආකෘතිය එහි හොඳ කේත නැවත භාවිතා කිරීමට සැබවින්ම ඉඩ නොදුන් බැවිනි.

නවතම එක සමඟ, ඒකීය කේත භාවිතා කිරීම වඩාත් අර්ථවත් වන්නේ එය ඒකාබද්ධ පාලක පාදක පන්තිය සමඟ කේත නැවත භාවිතා කිරීම පහසු කර ඇති බැවිනි.

කෙසේ වෙතත්, පාලකය effectively ලදායී ලෙස API වේ.


මෙම ප්‍රශ්නයට මරණයට පිළිතුරු ලැබී ඇත, නමුත් අනෙක් පිළිතුරු එතරම් පැහැදිලි යැයි මම නොසිතමි. "ඔබට API එකක් සෑදීමෙන් වැළකී සිටිය නොහැක." පිළිතුර බොහෝ සෙයින් අවධානයට ලක් වූ අතර පිළිගත් පිළිතුර එකම ප්‍රශ්නය වටා නැටුවේය; නමුත් දෙදෙනාම ඒඑස්පීයට ආමන්ත්‍රණය කළේ නැත.
ජේසන්

දයාවට තවත් පිළිතුරු සපයන අතර, අනෙක් අයට මේ ගැන හැඟෙන දේ පිළිබඳ මනා අවබෝධයක් ලබා ගැනීමට ඒවා උපකාරී වේ.
නිබ්ලිපිග්

2

මම 2006 දී මගේ වෘත්තිය ආරම්භ කරන විට .NET ලෝකයේ සියලු ආකාරයේ කෝපය මෙම ගෘහ නිර්මාණ ශිල්පය විය. මම 2000 දශකයේ මැද භාගයේ ව්‍යාපාර තාර්කික ස්තරය සහ වෙබ් පෙරමුන අතර වෙබ් සේවාවක් සමඟ සංකල්පනය කළ වෙනම ව්‍යාපෘති 3 ක වැඩ කළෙමි. ඇත්ත වශයෙන්ම මේ දිනවල වෙබ් සේවා SOAP වූ නමුත් එය තවමත් එකම ගෘහ නිර්මාණ ශිල්පයයි. අපේක්ෂිත ප්‍රතිලාභ නම් ඉදිරිපස හෝ පසුපසට මාරුවීමට සහ ඩෙස්ක්ටොප් වැඩසටහන දියුණු කිරීමට ඇති හැකියාවයි. අවසානයේදී යග්නි සත්‍ය බව ඔප්පු විය. මම කවදාවත් දැකලා නැහැ මේ කිසිම දෙයක් වෙන්නේ කියලා. මේ කාලය පුරාම මම දුටුවේ ව්‍යාපෘතිය මේ ආකාරයෙන් බෙදීමේ පිරිවැය පමණි. මම එක් ව්‍යාපෘතියකින් වෙබ් සේවාව ඉරා දැමීම පවා අවසන් කළෙමි (වෙනත් දේ කරන අතරතුර පියවරෙන් පියවර එය ඉවත් කිරීමට වසර භාගයක් ගතවිය) මුළු කණ්ඩායමම සතුටු විය. එතැන් සිට මම කිසි විටෙකත් එම ප්‍රවේශය අත්හදා බැලුවේ නැත. මෙම ගෘහ නිර්මාණ ශිල්පය අත්හදා බැලීමේ වසර 5 ක අත්දැකීම් මට උගන්වා ඇත්තේ මට එය අවශ්‍ය නොවන බවත්, ප්‍රතිවිරුද්ධ දේ පවසන විශේෂ experts යන් මා හට ඒත්තු ගැන්වීමට යන්නේ නැති බවත්ය. මට එය කළ හැකි ව්‍යාපෘතියක් පමණක් කළ හැකිය.

දැන් මම ව්‍යාපාර තර්කනය සහ පාලකයන් / ඉදිරිපත් කරන්නන් අතර තට්ටුවක් වර්ධනය කිරීමට දැඩි උත්සාහයක් දරමි. උදාහරණයක් ලෙස මා සතුව සේවා ස්ථරයක් ඇත, මම කිසි විටෙකත් විමසීම් හෙළි නොකරමි, මගේ සියලු සේවාවන් සඳහා අතුරුමුහුණත් භාවිතා කර ඒවා IoC සමඟ පාලකයන්ට එන්නත් කරමි. මගේ ගෘහ නිර්මාණ ශිල්පය තුළ මට කවදා හෝ වෙබ් සේවාවක් අවශ්‍ය නම් එය සාධාරණ පිරිවැයකින් හඳුන්වා දීමට මට හැකි වනු ඇත. මට මෙම පිරිවැය කල්තියා ගෙවීමට අවශ්‍ය නැත.

එසේම මම ක්ෂුද්‍ර සේවා පිළිබඳ අදහසට බෙහෙවින් කැමතියි නමුත් මගේ අවබෝධය නම් ක්ෂුද්‍ර සේවා යනු තිරස් ස්ථරවලට වඩා සිරස් මොඩියුල බවයි. උදාහරණයක් ලෙස ඔබ ෆේස්බුක් ගොඩනඟන්නේ නම්, චැට් විශේෂාංගය වෙනමම සේවාවක් වනුයේ එහි සේවාදායකයන් මත ය. මෙය මා දිරිමත් කරන ස්වාධීන සේවා වර්ගයයි.


2

තෙවන පාර්ශවයන් එය භාවිතා කරයිද? ඔව්, ඔබ කළ යුතුයි .

අනාගතයේ දී එය නැවත භාවිතා කිරීමට ඔබ අදහස් කරනවාද? ඔව්, ඔබ කළ යුතුයි.
ඔබ ඔබේ තෙවන පාර්ශවයක් වනු ඇත , ලේඛනගත - හෝ ලේඛනගත කළ හැකි - හෝ භාවිතා කළ හැකි තෙවන පාර්ශවීය API මඟින් ඔබට නැවත නැවත භාවිතා කිරීමේ හැකියාව සහ මොඩියුලරිටි ලබා දෙනු ඇත.

ඔයා කඩිමුඩියේද? නැත, ඔබ එසේ නොකළ යුතුය.
බොහෝ ක්‍රමවේදයන්ට පසුව ගුරුවරුන් පුරෝකථනය කර පවසනවාට වඩා ප්‍රතිනිර්මාණය කිරීම පහසු සහ වේගවත් ය. කිසිසේත් කිසිවක් නැතිවාට වඩා වැඩ කරන දෙයක් තිබීම (නරක අභ්‍යන්තර සැලසුමක් සහිතව, හැකි හා ප්‍රතිනිර්මාණය කළ හැකි) තිබීම වඩා වැදගත් ය. (නමුත් ඇදහිය නොහැකි අභ්‍යන්තර මෝස්තරයකින්, wohoo)

හේතු නිසා ඉදිරිපස කෙළවරේ දවසේ ආලෝකය නොපෙනේ ද? ඔව්, ඔබ කළ යුතුයි .
මම මේ හේතුව එකතු කළේ, මෙය මට බොහෝ දේ සිදු වූ බැවිනි.
අවම වශයෙන් නැවත භාවිතා කිරීම සහ නැවත බෙදා හැරීම සඳහා මගේ සංරචක ඉතිරිව ඇත.


1

මෙහි හොඳ පිළිතුරු තිබේ. මම මෙය අර්ධ පිළිතුරක් ලෙස පළ කරමි; එය අදහස් දැක්වීමක් ලෙස වඩා හොඳ වනු ඇත. කෙසේ වෙතත් එකම පෝස්ට් ගණනාවකට එකම සටහනක් තැබීම හොඳ නැත.

යග්නි යනු API නිර්මාණය නොකිරීමට හේතුවක් යැයි කෙනෙකුට පැවසිය නොහැක.

ඒපීඅයි යනු ස්වාභාවික හා තාර්කික පරීක්ෂණ අන්ත ලක්ෂ්‍යයකි. මේ අනුව 0 වන දින සිටම, API භාවිතා කරන යෙදුම් දෙකක් තිබේ: UI සහ පරීක්ෂණ කට්ටලය. එකක් මිනිසුන් සඳහා වන අතර අනෙක යන්ත්‍ර සඳහා ය. ඒවා අනිවාර්යයෙන්ම වෙනස් ය. ඉදිරිපස හැසිරීම පරීක්ෂා කිරීම පසු-අන්ත හැසිරීම පරීක්ෂා කිරීමට වඩා වෙනස් කාර්යයකි. මේ අනුව ශිල්පීය ක්‍රම සහ බොහෝ විට මෙවලම් සම්පූර්ණයෙන්ම වෙනස් වේ. කාර්යය සඳහා හොඳම මෙවලම භාවිතා කිරීමට API ඉඩ දෙයි. තවද, ඒපීඅයි මගින් වෙන් කිරීමත් සමඟ ඉදිරිපස පරීක්ෂකයින්ට පසුපස අන්තයේ ක්‍රියාකාරිත්වය පරීක්ෂා කිරීමට අවශ්‍ය නොවේ.

ඉදිරිපස කෝඩරය පසුපස කෝඩරයේ උත්සුකයන්ගෙන් keep ත් කර තැබීමට API උදව් කරයි, සහ අනෙක් අතට. මේවා අපගේ සමාගමේ වෙනස් කුසලතා; අප ශක්තිමත්ම තැනට අවධානය යොමු කිරීමට API අපට ඉඩ දෙයි.

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.