REST는 서버에 존재하는 데이터에 접근하기 위한 규칙의 모음으로 행위, 자원, 표현으로 이루어져 있다.
이러한 REST원칙을 잘 준수하는 API를 RESTful API라고 한다.
REST API는 HTTP를 설계할 때 지켜야 할 아키텍처인데 OkHttp랑 Retrofit은 이걸 간편하게 구현할 수 있도록 해준다. (REST API를 쉽게 사용하기 위한 도구로 생각해도 된다.)
Okhttp는 REST API, HTTP 통신을 간편하게 구현할 수 있도록 다양한 기능을 제공해주는 라이브러리이다. Retrofit이라는 라이브러리의 베이스가 된다. 그리고 Retrofit은 OkHttp를 기반으로 만들어졌다.
Retrofit은 앱 개발 시 서버통신에 사용되는 HTTP API를 자바, 코틀린의 인터페이스 형태로 변환해 안드로이드 개발 시 API를 쉽게 호출할 수 있도록 지원하는 라이브러리이다.
예를 들면, https://~~/user/{user}/repos라는 HTTP API가 존재한다고 가정했을 때, Retrofit 라이브러리를 사용하면 HTTP API를 아래 코드와 같은 인터페이스 형태로 변환할 수 있다.
interface GitHubService {
@GET("users/{user}/repos")
fun getRepoList(@Path("user") user: String): Call<List<Repo>>
}
<uses-permission android:name="android.permission.INTERNET" />
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
REST는 서버에 존재하는 데이터에 접근하기 위한 규칙들의 모음이다.
REST는 3가지의 구성 요소로 이루어져 있는데
행위(HTTP method) + 자원(URL) = 표현(GET https://~)
이러한 REST 원칙을 잘 준수하는 API를 Restful API라고 한다.
RESTful하게 짜여진 API는 URL로 서버에 있는 데이터나 서버의 행위를 식별할 수 있고, GET/POST/PUT/DELETE 이렇게 4가지 행위를 할 수 있다.
- GET : 데이터를 서버에서 얻는 행위(조회)
- POST : 데이터를 서버에 제출하는 행위(저장)
- PUT : 서버의 데이터를 변경하는 행위(정보수정/갱신)
- DELETE : 서버의 데이터를 삭제하는 행위