Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 안드로이드스튜디오
- 안드로이드 스튜디오
- android api
- 플레이스토어 앱 게시 문제
- android studio
- Callback
- 안드로이드 api
- 비동기
- 달력 만들기
- 안드로이드 http
- 앱 출시
- 레트로핏
- 앱개발
- 공유 기능
- urlconnection
- Exposed Drop-Down Menu
- Kotlin
- 플레이 콘솔 프로덕션
- Retrofit
- Bottom sheet
- Dialog
Archives
- Today
- Total
Strong 감자의 공부
Retrofit 사용해보기 #1 본문
오늘은 Retrofit을 사용해 api 통신을 설정해보겠습니다~
1. 싱글톤 객체로 Retrofit 객체 생성하기
싱글톤은 전역에서 한번만 객체가 생성되어 일관된 설정이 가능하고 코드 중복을 최소화할 수 있어요
package kr.co.gamja.study_hub.data.repository
import ...
object RetrofitManager {
private const val BASE_URL = "https://..."
val gson =GsonBuilder().setLenient().create()
// Retrofit 객체를 구성합니다.
val retrofit = Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create(gson))
.build()
// retrofit.create : Retrofit은 인터페이스를 기반으로 동적으로 구현체(Proxy 객체)를 생성.
val api = retrofit.create(Api::class.java) // Api : API classs는 api 요청을 정의하는 인터페이스
}
2. api 요청을 처리하는 인터페이스
package kr.co.gamja.study_hub.data.repository
import ...
interface Api {
// suspend 키워드를 사용하면 비동기적으로 네트워크 요청을 수행하고, 결과를 반환할 때까지 호출을 일시 중단.
@GET("/api/...")
suspend fun study(
@Query("page") page: Int,
@Query("size") size: Int
):Response<ParticipatedStudyRequestDto>
}
// HTTP 응답 데이터를 포함하는 객체
data class ParticipatedStudyRequestDto(
val participateStudyData: ParticipateStudyData,
val totalCount: Int
)
Response는 Retrofit 라이브러리에서 네트워크 요청의 결과를 나타내는 클래스이며, 이 클래스는 HTTP 요청에 대한 응답 정보를 캡슐화하며, 요청의 성공 또는 실패 여부와 서버에서 반환된 데이터를 처리하는 데 사용돼요.
3. 호출 부
fun updateEngagedListSize() {
viewModelScope.launch {
val response = RetrofitManager.api.study(0, 10)
try {
if (response.isSuccessful) {
}
} catch (e: Exception) {
}
}
}
다음엔 jwt를 사용한 코드를 소개할게요!
'앱개발 > StudyHub 앱 출시 회고' 카테고리의 다른 글
달력 만들기 (1) | 2024.12.30 |
---|---|
안드로이드 api 통신_callback함수 (2) | 2024.12.27 |
앱 게시 문제_#심사는 끝났는데 플레이 스토어에 앱이 안보일 때 (0) | 2024.12.27 |
앱 출시 회고_intro (0) | 2024.12.26 |
api 응답 값 에러 시 확인 절차 (0) | 2023.09.21 |