오늘은 Retrofit2를 이용한 REST API 사용법에 대해 정리해보려고 한다 🤗
Daum 책 검색 REST API
https://developers.kakao.com/docs/latest/ko/daum-search/dev-guide#search-book
먼저 API 를 사용하기 전에,
https://developers.kakao.com 에서 자신의 어플리케이션을 만든 후
키 값을 보유하고 있어야 한다.
Test Tool: Postman
Authorization 탭에
Key: Authorization
Value: KakaoAK REST API 키
입력한 후
api 형식에 맞는
key-value
값을 입력하고 Send
해주면 Response가 날라온다.
테스트에 성공하면 실제 어플에 적용하면 된다.
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-moshi:2.9.0'
json to kotlin이라는 플러그인 설치 후
response 예시를 이용하여 생성하면 json형식에 맞게 만들어준다
test한 앱 키를 가지고 있는 인터페이스를 생성해준다.
만든 Response 클래스를 이용하여 일시중단가능한 함수를 만든다.
private val retrofit: Retrofit by lazy {
Retrofit.Builder()
.addConverterFactory(MoshiConverterFactory.create()) //DTO 변환 모시
.baseUrl(BASE_URL)
.build()
}
레트로핏 인스턴스를 만들 땐
object를 사용하여 retrofit 객체는 싱글톤패턴으로 생성하여야
늦은초기화를 통해 필요할때 사용되도록 자원낭비를 막을 수 있다!!
val api: BookSearchApi by lazy {
retrofit.create(BookSearchApi::class.java)
}
인터페이스를 상속받아 create 해준다
override suspend fun searchBooks(
query: String,
sort: String,
page: Int,
size: Int
): Response<BookSearchResponse> {
return RetrofitInstance.api.searchBooks(query, sort, page, size) //api실행하여 반환값 4개 받기
}
Repository 인터페이스를 구현할 클래스에서 api를 실행한다.
프래그먼트나 액티비티에서 api 실행한 RepositoryImpl 파일을 이용하면 된다.