Rest API 이란?
- REST(Representational State Transfer) 아키텍쳐의 제약조건을 준수하는 어플리케이션 프로그래밍 인터페이스
- 서버와 클라이언트간의 단방향 통신 구조
- Request 와 Response
- Get, Post, Put, Delete
통신과정
클라이언트 -> Request -> 서버 -> Response -> 클라이언트
안드로이드에서 Rest API
안드로에드에서는 보다 편리하게 통신이 가능하도록 하는 Retrofit 라이브러리가 있다.
retrofit 사용을 위한 3가지
- DTO(Data Transfer Object) : Json Type을 받을 모델 정의
- Interface : CRUD 정의(Post / Get / Put / Delete)
- Retrofit Builder Class : baseurl, converter, interceptor 등의 설정
DTO
- serialize
- reflection을 통한 매칭
- java 표준 인터페이스
@Serializable
data class Person(
@SerialName("name") val name: String,
@SerialName("age") val age: Int
)
- pacelize
- Android SDK 인터페이스
- serialize 보다 빠른 속도
- serialize 보다 빠른 속도
@Parcelize
data class Person(
val name: String,
val age: Int
) : Parcelable
Interface
인터페이스 내에서 서버로 요청할 API를 비동기 함수로 작성한다.
CRUD
- Create
- Read
- Update
- Delete
@CRUD("서버주소")
suspend fun 함수(
@Header
@Query
@Parameter
@Body
..
...
) : Response<타입>
Builder
- BaseUrl 설정
- Gson, Json 등등
- Interceptor 을 이용한 에러 확인