package Ġcom . example . paging 3 sample . api Ċ Ċ import Ġcom . example . paging 3 sample . model . Repo Response Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . logging . Http Logging Interceptor Ċ import Ġretrofit 2 . Ret rofit Ċ import Ġretrofit 2 . converter . gson . Gson Converter Factory Ċ import Ġretrofit 2 . http . GET Ċ import Ġretrofit 2 . http . Query Ċ Ċ /** Ċ Ġ* Ġ ç½ĳç»ľ è¯·æ±Ĥ API Ċ Ġ*/ Ċ interface ĠGitHub Service Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġè¯·æ±Ĥ åĪĨé¡µ åĪĹè¡¨ ĊĠĠĠĠ Ġ* Ġ@ param Ġpage Ġ ç¬¬ x é¡µ ĊĠĠĠĠ Ġ* Ġ@ param Ġper Page ĊĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ GET (" search / repositories ? sort = stars & q = Android ") ĊĠĠĠ Ġsuspend Ġfun Ġsearch Repos (@ Query (" page ") Ġpage : ĠInt , Ġ@ Query (" per _ page ") Ġper Page : ĠInt ): ĠRepo Response ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġè¯·æ±Ĥ Host ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠBASE _ URL Ġ= Ġ" https :// api . github . com /" ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġèİ·åıĸ è¯·æ±Ĥ æİ¥åı£ ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġcreate (): ĠGitHub Service Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl ( BASE _ URL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( get HttpClient ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create ( GitHub Service :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġget HttpClient (): ĠOk HttpClient Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( get Http Logger ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġget Http Logger (): ĠHttp Logging Interceptor Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠHttp Logging Interceptor ( Http Logger ()). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlevel Ġ= ĠHttp Logging Interceptor . Level . BODY ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }