Retrofit2 ?
Retrofit2
는 Square사에서 개발한 오픈 소스 라이브러리로, RESTful API와 통신하기 위한 클라이언트를 생성하는 데 사용됩니다.
다음과 같은 단계로 사용할 수 있습니다.
예제
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
fun providesBithumbRetrofit(): Retrofit =
Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build()
baseUrl
을 통해서 API 호출을 위한 URL을 설정합니다.
addConverterFactory
에 JSON형식의 response를 자동으로 변환하기 위해 GsonConverterFactory를 추가합니다.
interface GetCoinService {
@GET("public/ticker/ALL_KRW")
suspend fun getCoinList() : CoinResponse
}
HTTP 요청 메서드(GET,POST 등) 와 해당 엔드포인트, 요청 및 응답 형식 등을 정의합니다.
class CoinRepository {
private val client = RetrofitInstance.providesBithumbRetrofit().create(GetCoinService::class.java)
suspend fun getCoinList() = client.getCoinList()
}
Retrofit 객체를 사용하여 API 인터페이스의 구현체를 생성합니다.
fun getCoinList() = viewModelScope.launch {
val result = coinRepository.getCoinList()
.
.
}
생성된 API 서비스 인스턴스를 사용하여 네트워크 요청을 실행합니다.