Ke hweditše phihlelo ya tirišo ya iOS ya Reddit e kaone go feta phetolelo ya wepe, ka gona ke ile ka nagana go hlahloba kamoo e laetšago ya data ka lebelo gakaakaa. Mona ke teardown ya Reddit ya iOS tiriso ye.
Dintlha tše dingwe tše dikgolo ke tše:
Mona ke teardown qaqileng ya dipitso API. Ke dirišitše Requestly ya Desktop App go thibela Reddit ya iOS tirišo, ditaelo tša go hloma di filwe mo .
Reddit App e bōpiloe le
Potšišo e kgolo yeo ke bego ke e-na le yona e be e le gore tirišo e šoma bjang ka lebelo gakaakaa e ile ya arabja ge go hlahlobja karabo ya FeedPostDetailsByIds API. API ye e bitšwa skrineng sa gae ka di-id tša diposo tšeo di bontšhitšwego gomme e tla le info ye e tletšego yeo e bontšhwago ka morago ga go kgotla poso. Go laetša mo ga diposo tša godimo go thušitše ka go bontšha skrine sa dintlha tša poso ka pela ntle le loader efe goba efe.
Dipotšišo tša GraphQL di na le datha le sebopego sa karabo ye e nyakegago. Lebitso la tshebetso ka kakaretso ke boikhethelo. Bontši bja di-API tša Reddit di na le maina a tshepedišo fela ka dipotšišong gomme diphetogo di hwetšagala fela ge go na le diphetogo tša skrineng/difiltara go swana le phepo ka dikgetho tša poso tše fišago le tša moragorago.
Se se fa taolo ye nnyane go bahlami ba frontend go dira diphetogo ka go ikemela eupša taolo ye ntši godimo ga tšhomišompe ya di-API go lata datha ye e sa nyakegego ka morago ga API ya yona ka moka yeo e lebanego le mosediriši.
Go sepetša diteko go didirišwa tša setlogo tša iOS go thata go hloka go tsenywa tirišong gape go kgontšha goba go šitiša diteko, eupša Reddit e hlomile tirišo ka tsela yeo diteko di ka laolwago kgole. Diteko ka moka di imelwa ka gare ga API gotee le dikelo tša tšona le maemo. The tiriso ye ka tsela e iketsang kenya tshebetsong fapaneng ya teko e abetseng.
Ka badiriši ba bantši gakaakaa, diteko le dikarolo go kaone go di laola ka kgole. Reddit e dira mošomo o mogolo wa go laola dikarolo tše ka kgole.
Ka thakgolwa ye nngwe le ye nngwe ya tirišo, e tla bitša API ya peakanyo go laetša diphetogo tša peakanyo tše 400+. Go ya ka diphetogo tše e bontšha diponagalo tše di fapanego le diphetogo tša diponagalo.
API yeo e nago le leina la tshepedišo ya GetTopKarmaSubreddits
e hwetša lenaneo la di-subreddit tša godimo tšeo di nago le dintlha tša karma tšeo di hweditšwego go e nngwe le e nngwe. API ye e utolla gore ke ditshwayotshwayo tše kae le karma ya poso yeo re e hweditšego go tšwa mošomong wa rena ka go sub-reddit ye nngwe le ye nngwe. Ga se nke ka hwetša tshedimošo ye ka gare ga UI ya wepe le ya sellathekeng ya Reddit.
Ge ke bala di-API go hwetša gore ke mohuta ofe wa datha yeo e e tlišago, ke hweditše SubredditFeedElements
API e laetša phepo ya sub-reddit ye e kgethilwego eupša ka poso ye nngwe le ye nngwe, e na le JSON yeo e tsentšwego ka gare ga sehlaga ya tshedimošo ye e tletšego ya sub-reddit. Tshedimošo ye ga e nyakege gomme e ka tlošwa go fokotša morwalo wa netweke ya API le go kaonafatša tshepedišo ya yona go ya pele.
Ela hloko: SubredditFeedElements
API bjale e tšeetšwe legato ke SubredditFeedSdui
API gomme taba e lokišitšwe.
Ke lekile go šomiša ChatGPT go hwetša ditemogo tše dingwe go tšwa go di-API. Kahoo bōpiloe faele le APIs tsohle le curl bona le dikarabelo bona ka eona. Uploaded faele ye go CustomGPT gore ke kgone go bea mohuta ofe goba ofe wa potšišo. E file ditemogo tše dingwe tšeo di bego di bonagala go swana le gore ke mohuta ofe wa tšhomišo yeo API e ka bago le yona le sebopego sa karabelo eupša e ile ya bona dilo ka leihlo la kgopolo kudu, go bonagala kudu ka lebaka la di-API tše ntši goba ga ke setsebi sa go hlohleletša. Tše dingwe tša ditemogo tšeo di filwego ke AI:
GetAllExperimentVariants
API — Diteko tše ntši di na le maina a itšego a "phapano", go akaretšwa dikgetho tša go swana le enabled
, variant_1
, control_model
, le one_feed_ph_bridge_new_users
. Karoganyo ye e šišinya gore Reddit e leka dikarolo go dikarolo tše itšego tša mosediriši go bona khuetšo ya tšona. Ka mohlala, teko d2x_avatar_in_comments_loggedin
e na le diphetogo tše pedi, loggedin
, le loggedout
, ka kgonagalo ya go leka tšobotsi yeo e theilwego godimo ga mmušo wa netefatšo ya mosediriši.GetAllExperimentVariants
API — Diteko di akaretša hybrid_video_rollout_android_v2
, active_sales
, le gql_google_maps_integration
, tšeo di šupago go mehutahuta ya diteko tša tšobotsi tšeo di akaretšago mošomo wa bidio, go bewa ga papatšo, dikaonafatšo tša segokanyimmediamentsi sa sebolokigolo sa mosebediši, le dikopanyo tša mokgatlo wa boraroGetAccountDetails
API — Karabelo ya API e na le mafelo a go fapafapana ao a hlalošago ka botlalo maemo a akhaonto ya mosediriši, go swana le isSubredditCreationAllowed
, isNameEditable
, isPasswordSet
, le maemo a motsamaisi wa mosediriši. Go tlaleletša, e akaretša suspensionExpiresAt
le isSuspended
, tšeo di laetšago ge e ba akhaonto ga bjale e emišitšwe goba e thibetšweGo na le lenaneo la di-API tša GraphQL tšeo ke ithutilego tšona go kwešiša kamoo Reddit e šomago ka gona. Go be go na le di-API tše dingwe gape go swana le netefatšo, go bega bj.bj.Ga se ka di akaretša lenaneong le.
Sekerini | API ya GraphQL | Tlhalošo |
---|---|---|
Gae | Hwetša Dipeakanyo ka Moka tša Dynamic | Loads 400 + config ditekanyetos thehiloeng eo litšobotsi tse fapaneng tsa tiriso ye sebetsa. Peakanyo e ka sebopego sa boleng bja senotlelo se se tlwaelegilego gotee le mohuta wa boleng bjo e ka bago JSON, go phaphamala, thapo bj.bj. |
| GetAllTekoDiphapano | Kgopelo e na le tshedimošo ka ga tirišo le sedirišwa go abela diteko tšeo di reretšwego phetolelo ya sedirišwa le tirišo. Karabo e na le lenaneo la diteko ka moka ka id, experimentName, phetolelo & maemo. |
| HwetšaAkhaonto | Loads dintlha tsohle tsa kena ka mosebedisi. |
| HomeFeedSdui ya go fepa | Laetša diposo tše mmalwa tša mathomo ka dintlha tša fasefase go bontšha letlakaleng la gae. |
| FeedPostDintlhaKaIds | Preloads diposo sebelisa ids le dintlha tsohle, haeba mosebedisi tobetsa ka poso. |
| Ditšhišinyo tša DiscoverBar | Utolla ya data bareng. |
| Peeletšo ya UserPremium | Data e amanago le peeletšo ya premium ya mosediriši |
| GetGo Swanelega ga Modiriši | Gets papatso tšoaneleha ya mosebedisi le dikgetho leha e le efe. |
| Dipalo tša Betšhe | Tshedimošo mabapi le dipetšhe tšeo di hweditšwego ke mosediriši. |
| | |
Letlakala la Subreddit | Dikanale tša Subreddit | Laetša dintlha ka moka tša motheo ka ga setšhaba go swana le tlhalošo, diaekhone, dibadi, mehuta ya poso ye e dumeletšwego, le mebala. |
| SubredditTaxonomyDihlogotaba | Laetša legoro la setšhaba le sengwalwa sa pontšho go swana le ge nka laetša r/software ya setšhaba e tla bontšha #20 go Software & Apps. |
| KeMema e sa emetše | Bjalo ka ge leina le šišinya hlahloba taletšo yeo e sa emetšego, eupša o sa kgonthišege gabotse gore ke taletšo efe. |
| Dikanale tša Subreddit | Loads dikanale tša poledišano tša sub-reddit, ke ile ka hlahloba di-subreddit tše dintši eupša ga se ka hwetša le ge e le efe. |
| Di-Redditors tše di Thibetšwego | Tlisa ya data haeba mosebedisi e thibetsoe. |
| GetBatsamaisi | Gets lenane la mods. |
| LaetšaSetaele sa SebopegoLe Diwijete | API ye e tliša info ka ga setaele, melawana le dintlha tša setšhaba. |
| Laetša Ditšhišinyo tša Setšhaba tše di Amanago | API ye e tliša ditšhaba tše di amanago. |
| SubredditMuting | E hlahloba ge e ba sub reddit e kgaoditšwe. |
| Dielemente tša Feed ya Subreddit | Loads phepo ya sub-reddit. E tšea difiltara & dikgetho tša peakanyo tšeo di kgethilwego bakeng sa sub-reddit. E tliša dintlha ka moka mabapi le diposo tšeo di tlago bontšhwa ka go phepo. |
| PostInfoKaIdDitshwayotshwayo | Kgopelo ye e preloads ditshwayotshwayo tša poso ya mathomo fela. |
| | |
Letlakala la Poso | GetTlwaeloEmojisMaemo | API ye e ile ya bitšwa ka id ya sub-reddit gomme e laetša maemo a di-emojis tša tlwaelo go sub-reddit. Its not very clear about why API ye e bitšwa, eupša ke e bone ka makga a mantši. Karabo e be e le |
| GetSubredditPhihleleloFlairsMaemo | Go swana le maemo a emoji e tšea id ya sub-reddit gomme e hwetša karabo bjalo ka isEnabled: maaka . Morero wa se ga o hlake go nna. |
| PostInfoKaIdDitshwayotshwayo | API ye e šomišwa go laetša ditshwayotshwayo tša poso ka go šomiša id ya poso yeo e fetišitšwego ka kgopelong. |
| DitshwayotshwayoLetlakalaDipapatšo | Loads papatso feela ka holimo ho ditshwaelo. |
| | |
Letlakala la Profaele | RedditorKa Leina la | Loads dintlha tša profaele ya mosebedisi yo a tsenego. |
| Dipeakanyo tša PostSet | Palo ya diposo tšeo di swanetšego go laetša. |
| GetTopKarmaDidirišwa tša ka fasana | Hwetša lenaneo la di-subreddit tša godimo tšeo di nago le dintlha tša karma setšhabeng se sengwe le se sengwe, API ye e utolla mabapi le gore ke ditshwayotshwayo tše kae le karma ya poso yeo re e hweditšego go tšwa mošomong wa rena ka go sub-reddit ye nngwe le ye nngwe. |
| Phepo ya Profaele ya Modiriši | Phepo ya profaele ya mosebedisi yeo e nago le ditshwayotshwayo le dipolelo. |
| Difoka tša Setšhaba tša Modiriši | Lenaneo la diphihlelelo le dikgwele tšeo di hweditšwego ke leina la mosediriši tšeo di fetišitšwego ka kgopelo ka id, leina le seswantšho seo se tlago bontšhwa. |
| Profaele ya TippingE hudušitšwe | Dintlha ka ga profaele ya go šišinya, ga se ya šomiša tšobotsi ye kudu. E bontšhitše 0 balance mo profile yaka 😄. |
Ke rata go dira dintlha tše mmalwa ge ke phetha teko ye ya go phušola.