package Ġcom . z sc . aac . k ch ttp Ċ Ċ import Ġcom . z sc . aac . k ch ttp . core . BaseUrl Key Ċ import Ġcom . z sc . aac . k ch ttp . core . Kc Http Config . global BaseUrl Ċ import Ġcom . z sc . aac . k ch ttp . core . Kc Http Config . ok HttpClient Builder Ċ import Ġcom . z sc . aac . k ch ttp . core . Kc Http Config . ret rofit Builder Ċ import Ġcom . z sc . aac . k ch ttp . core . Kc Http Config . ret ro fits Ċ import Ġcom . z sc . aac . k ch ttp . core . Kc Http Config . url Cache Ċ import Ġretrofit 2 . Ret rofit Ċ Ċ /** Ċ Ġ* Ġkotlin ĠCor outine Ġfor Ġhttp Ċ Ġ*/ Ċ object ĠK c Http Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠåĪĽå»º å¹¶ ç¼ĵåŃĺ Api ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠT > Ġcreate Api ( ĊĠĠĠĠĠĠĠ ĠbaseUrl : ĠString Ġ= Ġglobal BaseUrl ĊĠĠĠ Ġ): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . load Url Key < T >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( val Ġretrofit Ġ= Ġret ro fits [ it ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull Ġ-> Ġcreate ( url Cache [ it ] Ġ?: ĠbaseUrl ). apply Ġ{ Ġret ro fits [ it ] Ġ= Ġthis Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġretrofit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. create ( T :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åĬłè½½ Service å¯¹åºĶçļĦ Ret rofit ç¼ĵåŃĺ çļĦ key åĢ¼ ĊĠĠĠĠ Ġ* Ġå¦Ĥæŀľ æİ¥åı£ æľī [ BaseUrl Key ] æ³¨è§£ , åĪĻ åıĸ key å¯¹åºĶ çļĦåĢ¼ ï¼Į åĲ¦åĪĻ åıĸ ç±» åĲį åħ¨ ç§° ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠT > Ġload Url Key (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠT :: class . java . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Annotation Present ( BaseUrl Key :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Annotation ( BaseUrl Key :: class . java )?. value Ġ?: Ġsimple Name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġsimple Name ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ĠåĪĽå»º api åįķ æ¬¡ ä½¿çĶ¨ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠT > Ġcreate Single Api ( ĊĠĠĠĠĠĠĠ Ġurl : ĠString Ġ= Ġglobal BaseUrl , ĊĠĠĠĠĠĠĠ Ġretrofit : ĠRet rofit Ġ= Ġcreate ( url ) ĊĠĠĠ Ġ): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġretrofit . create ( T :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæł¹æį® å·² æľīçļĦ ok HttpClient Builder åĪĽå»º Ġretrofit å®ŀä¾ĭ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcreate ( baseUrl : ĠString Ġ= Ġglobal BaseUrl ): ĠRet rofit Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġretrofit Builder ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( baseUrl ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( ok HttpClient Builder . build ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊ Ċ }