본문 바로가기

개발 이야기/Android (안드로이드)

Android RESTful 개발 Kotlin 코드

320x100

안드로이드 앱을 코틀린으로 개발하면서 RESTful API를 사용하는 방법입니다. Retrofit 라이브러리를 사용하여 높은 생산성을 얻을 수 있습니다.

  1. 프로젝트에 Retrofit 라이브러리 추가:
    프로젝트의 build.gradle 파일의 dependencies 블록에 다음 라이브러리를 추가하세요.
dependencies {
    // Retrofit
    implementation 'com.squareup.retrofit2:retrofit:2.9.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.9.0'

    // OkHttp (로깅과 인터셉터를 사용하기 위해)
    implementation 'com.squareup.okhttp3:okhttp:5.0.0-alpha.2'
    implementation 'com.squareup.okhttp3:logging-interceptor:5.0.0-alpha.2'
}
  1. REST API 인터페이스 정의:
    Retrofit을 사용하여 API를 정의할 인터페이스를 작성합니다. 예를 들어, 다음과 같이 ApiService 인터페이스를 만들 수 있습니다.
import retrofit2.Call
import retrofit2.http.GET

interface ApiService {
    @GET("your/endpoint/path")
    fun getSomeData(): Call<ResponseBody>
}
  1. Retrofit 인스턴스 생성:
    Retrofit 인스턴스를 생성하고 해당 서버에 요청을 위한 설정을 준비합니다. 이를 위해 별도의 클래스 ApiClient를 만들어 설정을 진행합니다.
import okhttp3.OkHttpClient
import okhttp3.logging.HttpLoggingInterceptor
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory

object ApiClient {
    private var retrofit: Retrofit? = null

    fun getClient(baseUrl: String): Retrofit {
        if (retrofit == null) {
            val loggingInterceptor = HttpLoggingInterceptor()
            loggingInterceptor.level = HttpLoggingInterceptor.Level.BODY

            val httpClient = OkHttpClient.Builder()
            httpClient.addInterceptor(loggingInterceptor)

            retrofit = Retrofit.Builder()
                .baseUrl(baseUrl)
                .addConverterFactory(GsonConverterFactory.create())
                .client(httpClient.build())
                .build()
        }
        return retrofit!!
    }
}
  1. API 호출 및 응답 처리:
    이제 새로 생성한 ApiClient 클래스를 사용해 API 호출을 진행하고 결과를 처리합니다.
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val apiService = ApiClient.getClient("https://api.example.com/").create(ApiService::class.java)
        val call = apiService.getSomeData()
        call.enqueue(object : Callback<ResponseBody> {
            override fun onResponse(call: Call<ResponseBody>, response: Response<ResponseBody>) {
                if (response.isSuccessful) {
                    val result = response.body()?.string()
                    // 여기에서 result를 처리합니다.

                } else {
                    // 오류에 대해 처리합니다.
                }
            }

            override fun onFailure(call: Call<ResponseBody>, t: Throwable) {
                // 통신 실패에 대해 처리합니다.
            }
        })
    }
}

이렇게 코틀린과 Retrofit 라이브러리를 사용하여 RESTful API를 쉽게 호출하고 결과를 처리할 수 있습니다. 위 코드를 참고하여 필요한 기능과 인터페이스를 조정하여 프로젝트에 적용할 수 있습니다. 필요에 따라 인터셉터, 인증, 헤더 등을 추가하는 것도 가능합니다.

반응형