Retrofit2) Retrofit2를 사용해서 데이터 통신을 쉽게 해보자.
안녕하세요. 오늘 포스팅 주제는 Retrofit2에 관해서 다뤄보겠습니다.
1.Retrofit이란?
Square사에서 만든 Restful하게 통신을 할 수 있는 오픈 라이브러리입니다.
Retrofit을 사용해서 HTTP 프로토콜을 @(어노테이션)을 이용해서 @GET, @POST, @DELETE 처럼 간단하게 메소드처리가 가능합니다.
또한 custom header 설정과 multipart request body 설정, 파일 다운로드와 업로드 등등 여러 강력한 기능을 제공합니다.
공식 문서 사이트 : http://square.github.io/retrofit/
오늘 포스팅의 목표 : 자신의 github repersitory 목록을 받아와서 리스트뷰에 출력하기!
<제 깃헙 파일 저장소 목록입니다.>
2. Retrofit2 를 사용해보기! (Dependencies 및 permission 설정)
Retroift2는 외부 라이브러리이기 때문에 Dependencies를 설정해주어야됩니다. 또한 통신을 위해서
Manifest.xml에서 permission을 설정해주어야 되지요.
이렇게 사용전에 permission과 dependencies를 설정해줍시다.
참고로 retrofit2는 OkHttp를 네트워크 계층으로 사용하는데. retrofit2를 implement해서 추가하면 자동으로 OkHttp가 추가가 됩니다.
3. GithubAPI 정의하기
<인터페이스 정의 형식>
일단 인터페이스의 이름은 GithubAPI로 정의하고 GET 방식으로 github의 /users/HongyeongJu/repos로 접근해서 GithubRepos의 데이터를 받도록 정의합니다. 이때 HongyeongJu(저의 주소)가 아니라 파라미터로 받아서 대신 그 자리에 넣으려면 다음과 같이 바꿉니다.
{}를 사용해서 파라미터로 받은 변수로 {}괄호 안에 넣을 수가 있습니다. @Path는 메소드의 파라미터 변수는 {user}의 값과 똑같다라는 뜻입니다.
4. GitHubRepo POJO 클래스 정의하기
그럼 값을 받는 GitHubRepo POJO클래스를 정의해봅시다.
6. Cilent 객체만들고 통신하기
8. 전체 코드
참고 블로그
https://medium.com/@henen/빠르게-배우는-안드로이드-24-retrofit-dd16cd803938
https://jongmin92.github.io/2018/01/29/Programming/android-retrofit2-okhttp3/
https://futurestud.io/tutorials/retrofit-getting-started-and-android-client