일단 하고 보자
안녕하세요역시나 처음 그 기세(?)는 어디가고 작성일의 텀이 길어지고 있네요
하루에 한번이 안되면 이틀에 한번, 한줄이라도 작성해서 무언가 남기는 하루가 되어야 겠습니다.오늘 작성해 볼 내용은 Retrofit 입니다.
Retrofit이란?
Retrofit 은 서버 <-> 안드로이드 간 REST API 수행을 돕는 라이브러리입니다.
간단하게 장점을 설명하자면,
Retrofit의 주요 기능
예제 작성
Retrofit을 기존 개발하고 있는 앱에 적용해보기로 하겠습니다.
implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:converter-moshi:2.9.0' implementation 'com.squareup.moshi:moshi-kotlin:1.9.3'
data class ShopData( @Json(name = "번호") val num: Int? = 0, @Json(name ="상호") val shopName: String? = "", @Json(name = "도로명주소") val roadAddress: String? = "", @Json(name = "지번주소") val lotAddress: String? = "" )
interface ShopService { @GET(CONTEXT) fun getShopList( @Query("page") page: Int, @Query("perPage") perPage: Int, @Query("returnType") returnType: String = "", @Query("serviceKey") serviceKey: String = Api.API_KEY ): Call<ShopDataResponse> }
private val moshi = Moshi.Builder() .add(KotlinJsonAdapterFactory()) .build() private val retrofit = Retrofit.Builder() .addConverterFactory(MoshiConverterFactory.create(moshi)) .baseUrl(BASE_URL) .build() val retrofitService: ShopService by lazy { retrofit.create(ShopService::class.java) }
val service = Api.retrofitService.getShopList(page, perPage) service.enqueue(object: Callback<ShopDataResponse> { override fun onResponse( call: Call<ShopDataResponse>, response: Response<ShopDataResponse> ) { if(response.isSuccessful){ Log.d("shop", "success : ${_shopResponse.value}") } else { Log.d("error", "error : ${response.errorBody()}") } } override fun onFailure(call: Call<ShopDataResponse>, t: Throwable) { Log.d("error", "${t.printStackTrace()}") } })
결과
위의 예제에 사용된 API 호출 후 정상 전달된 값을 확인할 수 있었습니다.
이번에는 Retrofit 사용법에 대해 알아보았습니다
잘못된 내용이 있다면 댓글 부탁드리고, 내용이 좋았다면 공감, 구독 부탁드려요!
[TIL-230622] Retrofit 알아보기
안녕하세요
역시나 처음 그 기세(?)는 어디가고 작성일의 텀이 길어지고 있네요
하루에 한번이 안되면 이틀에 한번, 한줄이라도 작성해서 무언가 남기는 하루가 되어야 겠습니다.
오늘 작성해 볼 내용은 Retrofit 입니다.
Retrofit 은 서버 <-> 안드로이드 간 REST API 수행을 돕는 라이브러리입니다.
간단하게 장점을 설명하자면,
1. 구현이 간단하다
2. 가독성
3. 성능
1. Type Safe
2. Synchronous vs Asynchronous
3. Converters
* 역직렬화(deserialize) : 특정 포맷 상태의 데이터를 다시 객체로 변환
Retrofit을 기존 개발하고 있는 앱에 적용해보기로 하겠습니다.
1. Dependancy 작성
2. 전달받을 Data class 선언
3. API Interface 선언
4. Retrofit Instance
5. API 호출
위의 예제에 사용된 API 호출 후 정상 전달된 값을 확인할 수 있었습니다.
이번에는 Retrofit 사용법에 대해 알아보았습니다
잘못된 내용이 있다면 댓글 부탁드리고, 내용이 좋았다면 공감, 구독 부탁드려요!
'DEV > Android' 카테고리의 다른 글