스팀 앱 개발기 #22 - API 연동에 필요한 라이브러리 추가

image.png

이제 condenser_api.get_accounts API를 연동해야 합니다. 요즘 안드로이드에서 가장 많이 사용되는 네트워크 라이브러리는 Retrofit지요. 저 또한 API 연동에 그것을 사용하려 합니다. 이번 포스트에서는 데이터 모듈에 Retrofit 라이브러리를 추가하고 Retrofit 객체를 정의하는 과정을 정리합니다.


Retrofit 라이브러리 추가

dorian-steem-data 모듈의 build.gradle에 dependencies 블록을 아래와 같이 정의합니다.

dependencies {
    // retrofit
    implementation 'com.squareup.retrofit2:retrofit:2.9.0'
    implementation 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.9.0'

    // rx
    implementation 'io.reactivex.rxjava2:rxjava:2.2.20'
}
  • retrofit: 이게 바로 API 연동에 사용할 라이브러리입니다.
  • adapter-rxjava2: API 연동시 RxJava도 같이 사용하기 위해 추가합니다.
  • converter-gson: 서버로 보낼, 서버로부터 받을 JSON 데이터를 데이터 클래스로 또는 그 반대로 자동 변환을 지원합니다.
  • rxjava: RxJava 라이브러리입니다.

Retrofit 포장 객체 정의

API 연동에 Retrofit 객체가 필요하구요. 이를 감싸는 SteemClient 싱글 객체를 아래와 같이 정의합니다.

object SteemClient {

    const val BASE_URL = "https://api.steemit.com"

    private val retrofit = Retrofit.Builder()
        .baseUrl(BASE_URL)
        .addConverterFactory(GsonConverterFactory.create())
        .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
        .build()

    // val apiService = retrofit.create(SteemService::class.java)

}
  • BASE_URL: API 연동에 사용할 기본 URL
  • addConverterFactory(GsonConverterFactory.create())
    • 이것을 호출해야 JSON 자료가 데이터 클래스로 또는 그 반대로 자동 변환됨
  • addCallAdapterFactory(RxJava2CallAdapterFactory.create())
    • 서버로부터 데이터를 받기 위한 Observable 객체를 사용하기 위해 필요 (RxJava 관련)

GitHub Commit


마치며...

서버 연동까지 해보고 싶었지만, 오늘의 남은 시간이 부족하여 더 진행하지는 못 했네요. 다음 포스트에서는 condenser_api.get_accounts API를 실행하는데 필요한 데이터 클래스들을 진행할 예정입니다.


지난 스팀 앱 개발기

Coin Marketplace

STEEM 0.18
TRX 0.14
JST 0.029
BTC 57849.42
ETH 3122.29
USDT 1.00
SBD 2.43