මෙය හොඳ සහ ව්යාකූල ප්රශ්නයකි. යූආර්අයි නිර්මාණයේ මාතෘකාව ඒ සමගම REST API එකක වඩාත්ම කැපී පෙනෙන කොටස වන අතර එම නිසා එම API භාවිතා කරන්නන් කෙරෙහි දිගු කාලීන කැපවීමක් තිබිය හැකිය .
යෙදුමක පරිණාමය සහ යම් දුරකට එහි ඒපීඅයි යනු ජීවිතයේ සත්යයක් වන අතර එය ක්රමලේඛන භාෂාවක් වැනි සංකීර්ණ නිෂ්පාදනයක් පරිණාමය වීමට සමාන වන බැවින් යූආර්අයි සැලසුමට අඩු ස්වාභාවික සීමාවන් තිබිය යුතු අතර එය සංරක්ෂණය කළ යුතුය කාලයත් සමඟ . යෙදුමේ සහ API වල ආයු කාලය වැඩි වන විට, යෙදුම සහ API භාවිතා කරන්නන් කෙරෙහි ඇති කැපවීම වැඩි වේ.
අනෙක් අතට, ජීවිතයේ තවත් කරුණක් නම්, ඒපීඅයි හරහා පරිභෝජනය කරනු ලබන සියලු සම්පත් සහ ඒවායේ අංගයන් පුරෝකථනය කිරීම දුෂ්කර ය. වාසනාවකට මෙන්, එළිදරව්ව තෙක් භාවිතා වන සමස්ත API නිර්මාණය කිරීම අවශ්ය නොවේ . සෑම සම්පත් හා සම්පත් අවස්ථාවකම සියලු සම්පත් අවසන් ලක්ෂ්ය සහ ආමන්ත්රණ යෝජනා ක්රමය නිවැරදිව නිර්වචනය කිරීම ප්රමාණවත් වේ.
කාලයාගේ ඇවෑමෙන් ඔබට එක් එක් විශේෂිත සම්පතට නව සම්පත් හා නව ගුණාංග එකතු කිරීමට අවශ්ය විය හැකිය, නමුත් සම්පත් ඇමතීමේ යෝජනා ක්රමයක් පොදු වූ පසු ඒපීඅයි භාවිතා කරන්නන් විශේෂිත සම්පත් වෙත ප්රවේශ වීමට අනුගමනය කරන ක්රමය වෙනස් නොවිය යුතුය.
මෙම ක්රමය HTTP ක්රියා පද අර්ථ නිරූපණයට (උදා: PUT සැමවිටම යාවත්කාලීන කළ යුතුය / ප්රතිස්ථාපනය කළ යුතුය) සහ පෙර API අනුවාද වල සහය දක්වන HTTP තත්ව කේත (ඒවා දිගටම ක්රියාත්මක විය යුතුය, එවිට මානව මැදිහත්වීමකින් තොරව වැඩ කළ API සේවාදායකයින්ට දිගටම වැඩ කිරීමට හැකි විය යුතුය. ඒ වගේ).
තවද, URI බවට API අනුවාදය කාවැද්දීම සංකල්පය කඩාකප්පල් වීමට පටන් අයදුම් රාජ්ය එන්ජිම ලෙස hypermedia සම්පතක් ලිපිනය / වේලාව වෙනස් කළ බව URI සහිත විසින් (රෝයි, ටී Fieldings ආචාර්ය උපාධිය ලබාගන්න සඳහන්), මම ඇති බව නිගමනය කළ හැකි API අනුවාදයන් සම්පත් යූආර්අයි වල දීර් time කාලයක් තබා නොගත යුතුය, එයින් අදහස් කරන්නේ ඒපීඅයි භාවිතා කරන්නන්ට රඳා පැවතිය හැකි සම්පත් යූආර්අයි පර්මැලින්ක් විය යුතු බවයි .
නිසැකවම, API අනුවාදය පාදක URI තුළට කාවැද්දිය හැකි නමුත් නව API අනුවාදය සමඟ වැඩ කරන API සේවාදායකයකු නිදොස් කිරීම වැනි සාධාරණ සහ සීමිත භාවිතයන් සඳහා පමණි . එවැනි සංස්කරණය කරන ලද ඒපීඅයි කාලය සීමිත විය යුතු අතර ඒපීඅයි භාවිතා කරන්නන්ගේ සීමිත කණ්ඩායම් වලට (සංවෘත බීටා වලදී මෙන්) ලබා ගත හැකිය. එසේ නොමැතිනම්, ඔබ නොකළ යුතු තැන ඔබම කැප වන්න.
ඒපීඅයි අනුවාදයන් කල් ඉකුත්වීමේ දිනයක් පවත්වා ගෙන යාම පිළිබඳ සිතුවිලි කිහිපයක්. වෙබ් සේවා ක්රියාත්මක කිරීම සඳහා බහුලව භාවිතා වන සියලුම ක්රමලේඛන වේදිකා / භාෂා (ජාවා, .නෙට්, පීඑච්පී, පර්ල්, රේල්ස්, ආදිය) වෙබ් සේවා අවසන් ලක්ෂ්ය (ය) මූලික යූආර්අයි වෙත පහසුවෙන් බැඳීමට ඉඩ දෙයි. මේ ආකාරයෙන් විවිධ API අනුවාද හරහා ගොනු / පන්ති / ක්රම එකතුවක් වෙන් කර තබා ගැනීම පහසුය .
ඒපීඅයි පරිශීලකයින් වන පීඕවී වෙතින්, මෙය පැහැදිලිව පෙනෙන නමුත් සීමිත කාලයක් සඳහා, එනම් සංවර්ධනයේදී පමණක් විශේෂිත API අනුවාදයක් සමඟ වැඩ කිරීම හා බැඳීම පහසුය.
API නඩත්තු කරන්නාගේ POV වෙතින්, ලිපිගොනු වල ප්රධාන වශයෙන් ක්රියා කරන ප්රභව පාලන පද්ධති භාවිතා කරමින් විවිධ API අනුවාදයන් සමාන්තරව පවත්වා ගැනීම පහසුය (ප්රභව කේත) අනුවාදයේ කුඩාම ඒකකය ලෙස.
කෙසේ වෙතත්, URI පැහැදිලිව දෘශ්යමාන API ප්රභේද වරනයක් තියෙනවා: සිට එක් ද මෙම ප්රවේශය විරුද්ධ විය API ඉතිහාසය URI නිර්මාණය දෘශ්යමාන / aparent බවට පත් හා ඒ නිසා කාලයත් වෙනස් කොන්කරනු විවේක මාර්ගෝපදේශ එරෙහි ක්රියාදාමයක. මම එකඟයි!
මෙම සාධාරණ විරෝධය මඟ හරවා ගත හැකි ක්රමය නම් අනුවාද රහිත API පදනම් URI යටතේ නවතම API අනුවාදය ක්රියාත්මක කිරීමයි. මෙම අවස්ථාවේදී, API සේවාදායක සංවර්ධකයින්ට මේ සඳහා තෝරා ගත හැකිය:
නවතම ඒවාට එරෙහිව සංවර්ධනය කරන්න (යෙදුම නරක ලෙස නිර්මාණය කරන ලද API සේවාදායකයා බිඳ දැමිය හැකි අවසාන API වෙනස්වීම් වලින් එය ආරක්ෂා කිරීමට යෙදුම කැප කිරීමට ).
API හි නිශ්චිත අනුවාදයකට බැඳ තබන්න (එය පැහැදිලිව පෙනේ) නමුත් සීමිත කාලයක් සඳහා පමණි
උදාහරණයක් ලෙස, API v3.0 නවතම API අනුවාදය නම්, පහත සඳහන් දෙක අන්වර්ථයන් විය යුතුය (එනම් සියලු API ඉල්ලීම් වලට සමාන ලෙස හැසිරෙන්න):
http: // shonzilla / api / customers / 1234
http: // shonzilla / api /v3.0 / customers / 1234
http: // shonzilla / api / v3 / customers / 1234
ඊට අමතරව, පැරණි API වෙත යොමු කිරීමට තවමත් උත්සාහ කරන API සේවාදායකයින්ට ඔවුන් භාවිතා කරන API අනුවාදය යල් පැන ගියහොත් හෝ තවදුරටත් සහාය නොදක්වන්නේ නම් , නවතම පෙර API අනුවාදය භාවිතා කරන ලෙස දැනුම් දිය යුතුය . එබැවින් යල්පැනගිය යූආර්අයි වලට ප්රවේශ වීම:
http: // shonzilla / api /v2.2 / customers / 1234
http: // shonzilla / api /v2.0 / customers / 1234
http: // shonzilla / api / v2 / customers / 1234
http: // shonzilla / api /v1.1 / customers / 1234
http: // shonzilla / api / v1 / customers / 1234
එච්ටීටීපීLocation
ශීර්ෂයට සමගාමීව භාවිතා වන යළි හරවා යැවීම පෙන්නුම් කරන 30x එච්ටීටීපී තත්ව කේත වලින් ඕනෑම එකක් ආපසු ලබා දිය යුතුය, එය සම්පත් යූආර්අයි හි සුදුසු අනුවාදයක් වෙත හරවා යවයි.
http: // shonzilla / api / customers / 1234
API අනුවාදකරණ අවස්ථා සඳහා සුදුසු අවම වශයෙන් යළි-යොමුවීම් HTTP තත්ව කේත දෙකක්වත් තිබේ:
301 ස්ථිරවම පෙලඹුණු ඉල්ලා සිටියහ URI සමග සම්පත් තවත් URI (API අනුවාදය තොරතුරු අඩංගු නොවන බව සම්පතක් උදාහරණයක් කොමෙන්ටුවයි විය යුතුය) ස්ථිරවම ගෙන ඇති බව පෙන්නුම්. යල්පැනගිය / සහාය නොදක්වන API අනුවාදයක් දැක්වීමට මෙම තත්ව කේතය භාවිතා කළ හැකි අතර, සංස්කරණය කරන ලද සම්පත් යූආර්අයි වෙනුවට සම්පත් පර්මාලින්ක් මඟින් ආදේශ කර ඇති බව ඒපීඅයි සේවාදායකයාට දන්වයි .
302 හමු ඉල්ලා URI තවමත් සහාය විය හැක අතර ඉල්ලා සම්පත් තාවකාලිකව, වෙනත් ස්ථානයක පිහිටා ඇත බව යි. අනුවාදයට වඩා අඩු යූආර්අයි තාවකාලිකව නොමැති විට මෙම තත්ව කේතය ප්රයෝජනවත් විය හැකි අතර නැවත හරවා යැවීමේ ලිපිනය භාවිතා කරමින් ඉල්ලීමක් නැවත නැවතත් කළ යුතුය (උදා: ඒපී අනුවාදය සහිත යූආර්අයි වෙත යොමු කිරීම) සහ අපට එය දිගටම භාවිතා කරන ලෙස සේවාදායකයින්ට පැවසීමට අවශ්යය (එනම් permalinks).
HTTP 1.1 පිරිවිතරයේ Redirection 3xx පරිච්ඡේදයේ වෙනත් අවස්ථා සොයාගත හැකිය