package Ġcom . example . android . room word ss ample . ret rofit Ċ Ċ import Ġcom . example . android . room word ss ample . ret rofit . model . Response User Ċ import Ġcom . example . android . room word ss ample . ret rofit . model . Response Users Ċ 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 . Path Ċ import Ġretrofit 2 . http . Query Ċ Ċ interface ĠRet rofit Service Ġ{ ĊĊĠĠĠ Ġ@ GET (" users ") ĊĠĠĠ Ġsuspend Ġfun Ġget Users (@ Query (" page ", Ġencoded Ġ= Ġtrue ) Ġpage : ĠString ): ĠResponse Users ĊĊĠĠĠ Ġ@ GET (" users /{ id }") ĊĠĠĠ Ġsuspend Ġfun ĠgetUser (@ Path (" id ") Ġid : ĠString ): ĠResponse User ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġretrofit Service : ĠRet rofit Service ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġfun ĠgetInstance (): ĠRet rofit Service Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ret rofit Service Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlogging Ġ= ĠHttp Logging Interceptor () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogging . setLevel ( Http Logging Interceptor . Level . BODY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclient : ĠOk HttpClient Ġ= ĠOk HttpClient . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Interceptor ( logging ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġretrofit Ġ= ĠRet rofit . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. baseUrl (" https :// req res . in / api /") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Converter Factory ( Gson Converter Factory . create ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. client ( client ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġretrofit Service Ġ= Ġretrofit . create ( Ret rofit Service :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġretrofit Service !! ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ }