320x100
안드로이드 앱을 코틀린으로 개발하면서 RESTful API를 사용하는 방법입니다. Retrofit 라이브러리를 사용하여 높은 생산성을 얻을 수 있습니다.
- 프로젝트에 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'
}
- REST API 인터페이스 정의:
Retrofit을 사용하여 API를 정의할 인터페이스를 작성합니다. 예를 들어, 다음과 같이ApiService
인터페이스를 만들 수 있습니다.
import retrofit2.Call
import retrofit2.http.GET
interface ApiService {
@GET("your/endpoint/path")
fun getSomeData(): Call<ResponseBody>
}
- 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!!
}
}
- 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를 쉽게 호출하고 결과를 처리할 수 있습니다. 위 코드를 참고하여 필요한 기능과 인터페이스를 조정하여 프로젝트에 적용할 수 있습니다. 필요에 따라 인터셉터, 인증, 헤더 등을 추가하는 것도 가능합니다.
반응형
'개발 이야기 > Android (안드로이드)' 카테고리의 다른 글
Android | BLE / BEACON 지원여부 체크 (0) | 2023.09.06 |
---|---|
JAVA ByteBuffer 궁금점 정리 (0) | 2023.09.04 |
[Android] Leak Canary를 이용하여 메모리 누수개선방안 (0) | 2023.08.23 |
Android | Camera 로 부터 들어온 영상편집 (0) | 2023.07.10 |
Android RESTful 개발 Java 코드 (0) | 2023.06.26 |
RecycerView adapter 간단정리 (0) | 2023.06.07 |
Android | 영상통화자료 (2) | 2023.06.02 |
Java 에서는 static을 C 와 다르게 사용하자 (0) | 2020.05.05 |