Reddit හි iOS යෙදුම් අත්දැකීම වෙබ් අනුවාදයට වඩා හොඳ බව මට පෙනී ගියේය, එබැවින් මම එය වේගයෙන් දත්ත පූරණය කරන්නේ කෙසේදැයි පරීක්ෂා කිරීමට සිතුවෙමි. Reddit හි iOS යෙදුමේ ඉරීම මෙන්න. මෙන්න විශේෂ අවස්ථා කිහිපයක්: එය ටෝකන් මත පදනම් වූ සත්යාපනය භාවිතා කරයි. එය වින්යාස කිරීම සහ අත්හදා බැලීම්වල සිට තොරතුරු පළ කිරීම දක්වා සෑම දෙයකටම පාහේ GraphQL API භාවිත කරයි. එය w3-reporting නම් API භාවිතා කරමින් එහි පරිශීලකයන් අත්විඳින පරිදි එහි API පද්ධතියේ ක්රියාකාරීත්වය නිරීක්ෂණය කරයි. බොහෝ GraphQL API ඇමතුම් වලදී විචල්ය නොමැතිව මෙහෙයුම් නාමය පමණක් සම්මත වේ, මම උපකල්පනය කරන්නේ ඔවුන් විචල්යවල වින්යාසය ඉදිරිපස අන්තයෙන් වියුක්ත කිරීමට මිඩ්ල්වෙයාර් භාවිතා කරන බවයි. පසුපෙළ සේවාවක් මෙහෙයුම් නාමය මත පදනම්ව තොරතුරු පුරවයි. Reddit සජීවී අදහස් දැක්වීමේ විශේෂාංගය සඳහා Web Socket භාවිතා කරයි. API ඇමතුම්වල සවිස්තරාත්මක ඉරීම මෙන්න. Reddit හි iOS යෙදුමට බාධා කිරීමට මම භාවිතා කළෙමි, සැකසීමේ උපදෙස් සපයා ඇත. Requestly's Desktop App මෙහි භාවිතා කරන තාක්ෂණය Reddit යෙදුම නිර්මාණය කර ඇත Reddit හි iOS යෙදුම සියලු අන්තර්ගතයන් පූරණය කිරීමට GraphQL API භාවිතා කරයි. පරිශීලකයන් වලංගු කිරීම සඳහා ටෝකන් මත පදනම් වූ සත්යාපනය භාවිතා වේ. පරිශීලක අන්තයේ API කාර්ය සාධනය වාර්තා කිරීමෙන් කාර්ය සාධන අධීක්ෂණය. WebSocket භාවිතයෙන් සජීවී අදහස් දැක්වීමට සහය දක්වයි. නව අනුවාදයන් යෙදවීමකින් තොරව දුරස්ථව යෙදුම් හැසිරීම් පාලනය කිරීමට ගතික වින්යාසය. අත්හදා බැලීම් දුරස්ථව පාලනය කිරීම සඳහා ගතික අත්හදා බැලීම්, අත්හදා බැලීමක තත්ත්වය වෙනස් කිරීමට නව යෙදවීමක් අවශ්ය නොවේ. Preloading සමඟ වඩා හොඳ UX මට තිබූ ප්රධාන ප්රශ්නය වූයේ යෙදුම මෙතරම් වේගයෙන් ක්රියා කරන්නේ කෙසේද යන්නයි, API හි ප්රතිචාරය පරීක්ෂා කිරීමෙන් පිළිතුරු ලැබුණි. මෙම API පෙන්වන්නේ පළ කිරීම් වල ids සමඟ මුල් තිරය මත කැඳවනු ලබන අතර පළ කිරීම ක්ලික් කිරීමෙන් පසු පෙන්වන සවිස්තරාත්මක තොරතුරු සමඟ පැමිණේ. මෙම ඉහළ පළ කිරීම් පූර්ව පූරණය කිරීම කිසිදු පූරණයකින් තොරව පළ කිරීම් විස්තර තිරය ක්ෂණිකව පෙන්වීමට උපකාරී විය. FeedPostDetailsByIds සංග්රහයේ පූර්ව පැටවීමේ පළ කිරීම් පෙන්වයි. API වල ප්රතිචාර කාලය ද ඉතා වේගවත් වේ. GraphQL API ආරක්ෂාව GraphQL විමසුම් අවශ්ය ප්රතිචාරයේ දත්ත සහ ව්යුහයෙන් සමන්විත වේ. මෙහෙයුමේ නම සාමාන්යයෙන් විකල්ප වේ. බොහෝ Reddit API වල විමසුම්වල මෙහෙයුම් නාමයන් පමණක් ඇති අතර විචල්යයන් ලබා ගත හැක්කේ උණුසුම් සහ නවතම පළ කිරීම් විකල්ප සමඟ සංග්රහය වැනි තිරයේ විචල්යයන්/පෙරහන් ඇති විට පමණි. මෙමගින් ඉදිරිපස සංවර්ධකයින්ට ස්වාධීනව වෙනස්කම් කිරීමට අඩු පාලනයක් ලබා දෙන නමුත් එහි සියලුම පරිශීලක-මුහුණු API පසු අනවශ්ය දත්ත ලබා ගැනීම සඳහා API අනිසි ලෙස භාවිතා කිරීම පාලනය කරයි. දුරස්ථ පාලක අත්හදා බැලීම් ස්වදේශීය iOS යෙදුම් මත අත්හදා බැලීම් ධාවනය කිරීම දුෂ්කර වන අතර අත්හදා බැලීම් සබල කිරීමට හෝ අක්රිය කිරීමට නැවත යෙදවීම් අවශ්ය වේ, නමුත් Reddit විසින් පරීක්ෂණ දුරස්ථව පාලනය කළ හැකි ආකාරයෙන් යෙදුම සකසා ඇත. සියලුම අත්හදා බැලීම් ඒවායේ අගයන් සහ තත්ත්වයන් සමඟ API එකක පටවනු ලැබේ. යෙදුම එය පවරා ඇති අත්හදා බැලීමේ ප්රභේදය ස්වයංක්රීයව සක්රීය කරයි. ධජ මත පදනම් වූ විශේෂාංග පාලනය බොහෝ පරිශීලකයින්, අත්හදා බැලීම් සහ විශේෂාංග සමඟ ඒවා දුරස්ථව පාලනය කිරීම වඩා හොඳය. Reddit මෙම විශේෂාංග දුරස්ථව පාලනය කිරීමේ විශිෂ්ට කාර්යයක් කරයි. යෙදුමේ සෑම දියත් කිරීමකදීම, එය 400+ වින්යාස විචල්යයන් පූරණය කිරීමට වින්යාස API අමතනු ඇත. මෙම විචල්යයන් මත පදනම්ව එය විවිධ ලක්ෂණ සහ විශේෂාංගවල ප්රභේද පෙන්වයි. කර්මවල රහස මෙහෙයුම් නාමය සහිත API හට එක් එක් උපයාගත් කර්ම ලකුණු සහිත ඉහළම උපසිරසි ලැයිස්තුව ලැබේ. මෙම API මඟින් එක් එක් sub-reddit හි අපගේ ක්රියාකාරකම් වලින් අප කොපමණ අදහස් සහ පසු කර්ම ලබා ගෙන තිබේද යන්න හෙළි කරයි. Reddit හි වෙබ් සහ ජංගම UI තුළ මෙම තොරතුරු මට කිසිදා සොයාගත නොහැකි විය. GetTopKarmaSubreddits වැඩිදියුණු කිරීමේ විෂය පථය එය ගෙන එන්නේ කුමන ආකාරයේ දත්තදැයි සොයා ගැනීමට APIs කියවන අතරතුර, API තෝරාගත් උප-reddit හි සංග්රහය පූරණය කරන බව මට පෙනී ගිය නමුත් සෑම පළ කිරීමක් සමඟම, එහි සවිස්තරාත්මක උප-රෙඩිට් තොරතුරුවල කැදලි JSON ඇත. මෙම තොරතුරු අතිරික්ත වන අතර API හි ජාල භාරය අඩු කිරීමට සහ එහි කාර්ය සාධනය තවදුරටත් වැඩිදියුණු කිරීමට ඉවත් කළ හැක. SubredditFeedElements සටහන: SubredditFeedElements API දැන් SubredditFeedSdui API මගින් ප්රතිස්ථාපනය කර ඇති අතර ගැටළුව විසඳා ඇත. තීක්ෂ්ණ බුද්ධිය සඳහා AI භාවිත කරන්න මම API වලින් යම් අවබෝධයක් ලබා ගැනීමට ChatGPT භාවිතා කිරීමට උත්සාහ කළෙමි. ඒ නිසා සියලුම API වල curl සහ ඒවායේ ප්රතිචාර සහිත ගොනුවක් නිර්මාණය කළා. මෙම ගොනුව CustomGPT වෙත උඩුගත කරන ලද අතර එමඟින් මට ඕනෑම ආකාරයක විමසුමක් තැබිය හැකිය. එය API එකක කුමන ආකාරයේ භාවිතයක් තිබිය හැකිද සහ ප්රතිචාරයේ ව්යුහය වැනි පැහැදිලි වූ සමහර අවබෝධයක් ලබා දුන් නමුත් එය බොහෝ APIs නිසා හෝ මා ප්රේරකයේ ප්රවීණයෙකු නොවන නිසා බොහෝ දුරට මායාවට පත් විය. AI විසින් ලබා දී ඇති සමහර අදහස්: API — බොහෝ අත්හදා බැලීම් වලට , , , සහ වැනි විකල්ප ඇතුළුව විශේෂිත "විචල්ය" නම් ඇත. මෙම ඛණ්ඩනය යෝජනා කරන්නේ Reddit ඒවායේ බලපෑම තීරණය කිරීම සඳහා විශේෂිත පරිශීලක කොටස්වල විශේෂාංග පරීක්ෂා කරන බවයි. උදාහරණයක් ලෙස, අත්හදා බැලීමේ ප්රභේද දෙකක් ඇත, , සහ , පරිශීලක සත්යාපන තත්ත්වය මත පදනම්ව විශේෂාංගය පරීක්ෂා කළ හැකිය. GetAllExperimentVariants enabled variant_1 control_model one_feed_ph_bridge_new_users d2x_avatar_in_comments_loggedin loggedin loggedout API — අත්හදා බැලීම්වලට , , සහ ඇතුළත් වන අතර, ඒවා වීඩියෝ ක්රියාකාරීත්වය, දැන්වීම් ස්ථානගත කිරීම්, පරිශීලක අතුරුමුහුණත් වැඩි දියුණු කිරීම් සහ තෙවන පාර්ශවීය ඒකාබද්ධ කිරීම් ආවරණය වන පුළුල් පරාසයක විශේෂාංග පරීක්ෂණ වෙත යොමු කරයි. GetAllExperimentVariants hybrid_video_rollout_android_v2 active_sales gql_google_maps_integration API — API ප්රතිචාරයේ , , , සහ පරිශීලකයාගේ ප්රමිතිකරණ තත්ත්වය වැනි පරිශීලකගේ ගිණුම් තත්ත්වය විස්තර කරන විවිධ ක්ෂේත්ර අඩංගු වේ. අතිරේක වශයෙන්, එහි ගිණුමක් දැනට අත්හිටුවා හෝ සීමා කර තිබේද යන්න පෙන්නුම් කරන, සහ ඇතුළත් වේ. GetAccountDetails isSubredditCreationAllowed isNameEditable isPasswordSet suspensionExpiresAt isSuspended API ලැයිස්තුව Reddit ක්රියා කරන ආකාරය තේරුම් ගැනීමට මා අධ්යයනය කළ GraphQL API ලැයිස්තුවක් තිබේ. සත්යාපනය, වාර්තා කිරීම වැනි තවත් API කිහිපයක් තිබුණා. මම ඒවා මෙම ලැයිස්තුවට ඇතුළත් කළේ නැහැ. තිරය GraphQL API (මෙහෙයුම් නම) විස්තරය නිවස GetAllDynamicConfigs යෙදුමේ විවිධ විශේෂාංග ක්රියා කරන 400+ වින්යාස පරාමිති පූරණය කරයි. වින්යාසය JSON, float, string යනාදිය විය හැකි අගයේ වර්ගය සමඟ සාමාන්ය යතුරු අගය ආකෘතියෙන් ඇත. GetAllExperimentVariants උපාංගය සහ යෙදුම් අනුවාදය සඳහා වන අත්හදා බැලීම් පැවරීම සඳහා යෙදුම සහ උපාංගය පිළිබඳ තොරතුරු ඉල්ලීමෙහි අඩංගු වේ. ප්රතිචාරයේ හැඳුනුම්පත, අත්හදා බැලීමේ නම, අනුවාදය සහ තත්ත්වය සහිත සියලු අත්හදා බැලීම් ලැයිස්තුවක් අඩංගු වේ. GetAccount ලොග් වී ඇති පරිශීලකයාගේ සියලු විස්තර පූරණය කරයි. HomeFeedSdui මුල් පිටුවේ පෙන්වීමට අවම විස්තර සහිත පළමු පළ කිරීම් කිහිපය පූරණය කරයි. FeedPostDetailsByIds පරිශීලකයෙකු පළ කිරීම මත ක්ලික් කළහොත්, සියලු විස්තර සහිත id භාවිතා කරමින් පළ කිරීම් පූර්ව පූරණය කරයි. DiscoverBar නිර්දේශ තීරු දත්ත සොයා ගන්න. UserPremiumSubscription පරිශීලක වාරික දායකත්වයට අදාළ දත්ත GetUserAdEligibility පරිශීලකයාගේ දැන්වීම් සුදුසුකම් සහ ඕනෑම මනාප ලබා ගනී. BadgeCounts පරිශීලකයා විසින් උපයාගත් ලාංඡන පිළිබඳ තොරතුරු. Subreddit පිටුව SubredditChannels විස්තරය, අයිකන, කවුන්ටර, අවසර ලත් පළ කිරීම් වර්ග සහ වර්ණ වැනි ප්රජාව පිළිබඳ සියලු මූලික විස්තර පූරණය කරයි. SubredditTaxonomy මාතෘකා ප්රජාවේ ප්රවර්ගය පූරණය කරන අතර මම ප්රජාව r/මෘදුකාංගය පූරණය කළහොත් එය මෘදුකාංග සහ යෙදුම්වල #20 පෙන්වයි වැනි සංදර්ශක පෙළ. InvitePending වේ නම යෝජනා කරන පරිදි පොරොත්තු ආරාධනයක් සඳහා පරීක්ෂා කරන්න, නමුත් කුමන ආරාධනයදැයි නිශ්චිතවම විශ්වාස නැත. SubredditChannels sub-reddit හි කතාබස් නාලිකා පූරණය කරයි, මම බොහෝ subreddits පරීක්ෂා කළ නමුත් කිසිවක් සොයා ගැනීමට නොහැකි විය. BlockedRedditors පරිශීලකයා අවහිර කර ඇත්නම් දත්ත ගෙන එයි. GetModerators මාදිලි ලැයිස්තුවක් ලබා ගනී. FetchStructuredStyleAndWidgets මෙම API ප්රජාවේ ශෛලිය, රීති සහ විස්තර පිළිබඳ තොරතුරු ගෙන එයි. FetchRelatedCommunityRecommendations මෙම API අදාළ ප්රජාවන් ගෙන එයි. SubredditMuting sub reddit නිශ්ශබ්ද වී ඇත්දැයි පරීක්ෂා කරයි. SubredditFeedElements උප-reddit හි සංග්රහය පූරණය කරයි. එය උප-රෙඩිට් සඳහා තෝරාගත් පෙරහන් සහ පිරිසැලසුම් විකල්ප ගනී. සංග්රහයේ ප්රදර්ශනය කළ යුතු පළ කිරීම් පිළිබඳ සියලු විස්තර ගෙන එයි. PostInfoByIdComments මෙම ඉල්ලීම ප්රථම පෝස්ටුවෙහි අදහස් පමණක් පූර්ව පූරණය කරයි. තැපැල් පිටුව GetCustomEmojisStatus මෙම API උප-රෙඩිට් හැඳුනුම්පත සමඟින් කැඳවා ඇති අතර උප-රෙඩිට් මත අභිරුචි ඉමෝජිවල තත්ත්වය පූරණය කරයි. මෙම API හඳුන්වන්නේ ඇයිද යන්න පිළිබඳව එය ඉතා පැහැදිලි නැත, නමුත් මම එය බොහෝ අවස්ථාවලදී දැක ඇත. ප්රතිචාරය . isEnabled: false GetSubredditAchievementFlairsStatus ඉමොජි තත්ත්වයට සමානව එය උප-රෙඩිට් හැඳුනුම්පතක් ගන්නා අතර isEnabled: false ලෙස ප්රතිචාරයක් ලබා ගනී. මේකේ අරමුණ මට පැහැදිලි නෑ. PostInfoByIdComments මෙම API ඉල්ලීමෙහි සම්මත කර ඇති තැපැල් හැඳුනුම්පත භාවිතා කිරීමෙන් පළකිරීමේ අදහස් පූරණය කිරීමට භාවිතා කරයි. CommentsPageAds අදහස්වලට ඉහළින් දැන්වීම පූරණය කරයි. පැතිකඩ පිටුව RedditorByName පුරනය වී ඇති පරිශීලකයාගේ පැතිකඩ විස්තර පූරණය කරයි. PostSetSettings පූරණය කළ යුතු තනතුරු ගණන. GetTopKarmaSubreddits එක් එක් ප්රජාව මත කර්ම ලකුණු සහිත ඉහළම උපසිරසි ලැයිස්තුව ලබා ගන්න, මෙම API මඟින් එක් එක් උප-රෙඩිට් තුළ අපගේ ක්රියාකාරකම් වලින් අප කොපමණ අදහස් සහ පසු කර්ම උපයා තිබේද යන්න හෙළි කරයි. UserProfileFeed අදහස් සහ පළ කිරීම් අඩංගු පරිශීලක පැතිකඩ සඳහා සංග්රහය. UserPublicTropies පරිශීලක නාමයෙන් ඉපැයූ ජයග්රහණ සහ කුසලාන ලැයිස්තුව ප්රදර්ශනය කිරීමට හැඳුනුම්පත, නම සහ රූපය සමඟ ඉල්ලීමකදී සම්මත කර ඇත. TippingProfileMigrate කරන ලදී ඉඟි පැතිකඩ පිළිබඳ විස්තර, මෙම විශේෂාංගය වැඩිපුර භාවිතා කර නැත. එය මගේ පැතිකඩෙහි 0 ශේෂයක් පෙන්නුම් කළේය 😄. නිගමනය මෙම ඉරා දැමීමේ අත්හදා බැලීම අවසානයේ මම කරුණු කිහිපයක් ඉදිරිපත් කිරීමට කැමැත්තෙමි. Reddit හි API ඉතා වේගවත් නොවේ, ඒ වෙනුවට වඩා හොඳ පරිශීලක අත්දැකීමක් ලබා දීමට පෙර පැටවීම භාවිතා කරයි. APIs වැඩ කිසිවිටෙක සම්පූර්ණ නොවේ, Reddit හි ඉංජිනේරුවාට පවා එය තව දුරටත් වැඩිදියුණු කිරීමට යම් වැඩ කොටසක් කිරීමට තිබේ. යෙදුම් සහ අත්හදා බැලීම් වින්යාසයන් දුරස්ථව තබා ගැනීමෙන් පරිශීලක අත්දැකීම මත හොඳ පාලනයක් ලබා දිය හැක. Requestly හි ඉංජිනේරුවන් සෑම GraphQL ඉල්ලීමක් සමඟම මෙහෙයුම් නාමය පෙන්වීමට විශිෂ්ට කාර්යයක් ඉටු කළ අතර, devs හි ජීවිතය වඩාත් පහසු කරයි.