Retrofit Tutorial — Send Objects In Request Body

이봐 요, 모든 사람들이 무엇인지, Futurestudio University의 Norman

이 Retrofit 시리즈의 두 번째 비디오에 오신 것을 환영합니다 항상 그렇듯이 시작하기 전에 모든 내용을 자습서로 찾아야합니다 웹 사이트에서 쉽게 복사하여 붙여 넣을 수있는 모든 코드 스 니펫을 제공합니다 이 링크는 아래 설명에서 가장 먼저 나와 있습니다 좋아, 시작하자

이 시리즈의 첫 번째 비디오에서 Retrofit이 무엇인지, 어떻게 사용 하는지를 배웠습니다 서버에 데이터를 요청하십시오 Retrofit을 사용하여 사용자의 GitHub 저장소에 액세스하고 표시했습니다 아직 그 비디오를 보지 못했다면 쉽게 볼 수 있으므로 지금보아야합니다 이 비디오의 나머지 부분을 이해할 수 있습니다

이 비디오에서 우리는 주변 환경을 돌리고 서버에 데이터를 보냅니다 단 몇 분 안에 요청 객체로서 Java 객체를 구현하는 방법을 알게 될 것입니다 Android Studio를 시작하기 전에 GET, POST 및 PUT 요청을 빠르게 검토해 봅시다 이 시리즈에서는 아직 이야기하지 않았지만 일반적으로 데이터를 요청하는 경우 서버에서 GET 요청을하는 것입니다 오픈 소스 리포지토리를 전시 할 때 마지막 비디오에서 우리가 한 일입니다

이 비디오에서 우리는 서버에 데이터를 보내고 싶습니다 이것은 보통 POST 또는 PUT 요청에서 수행됩니다 POST 요청은 새 데이터 항목을 추가하려는 경우입니다 (예 : 보내는 경우) 서버가 새로운 계정을 생성한다는 것을 의미하는 사용자 개체 반면에 PUT 요청은 기존 데이터 항목을 업데이트합니다

사용자 예에서는 프로필 업데이트가됩니다 새 사용자를 만들지 않고 단순히 기존 사용자 만 변경합니다 Android Studio를 시작 하시겠습니까? 계획이 무엇입니까? 오늘 우리는 사용자가 새 계정을 만들 수 있도록하는 앱보기를 구현할 것입니다 따라서 새로운 사용자 객체를 서버에 POST 요청으로 보냅니다 이미 뷰 및 기본 추가 기능 설정을 준비했습니다

이제 우리가해야 할 일은 말하고 싶은 종단점을 기술하는 것입니다 API 개발자가 제공 한 내용을 확인해 보겠습니다 API 개발자는 Postman에서 예를 들어 보았습니다이 도구는 꽤 괜찮은 도구입니다 REST 요청을 테스트합니다

요청 본문에는 이름과 이메일이 문자열로 포함되어야하며 연령은 정수 값이며, topics는 사용자가 관심있는 주제 문자열 배열입니다 또한 URL은 / api / user에 있음을 알고 있습니다 또한 POST 요청을 보내야한다는 것을 다시 알 수 있습니다 이제 Retrofit에서 엔드 포인트를 설명하기 위해 알아야 할 모든 것입니다 이것을 실행하면 정확한 사용자 객체를 얻는 것을 볼 수 있습니다

신분증 좋습니다 이제 우리는 Retrofit 엔드 포인트로 본 엔드 포인트를 설명해야합니다 우리는 새로운 계정을 만들므로 끝점을 createAccount ()로 지정합시다 우리는 사용자 객체를 가지고 새로운 계정을 만들고 있습니다, 그래서 사용자 객체를 전달합시다

우리는 또한 사용자 객체를 다시 얻고 있습니다 그래서 당신이 사용하고자하는 컨텍스트에 따라 다릅니다 응답 및 요청에 대한 클래스가 있지만이 경우 거의 동일하므로 그냥 같은 클래스를 사용할 것입니다 Retrofit에서는 항상 Call <> 클래스로 래핑해야합니다 다음으로 추가 정보를 주석으로 추가해야합니다

먼저 이것이 POST 요청이라는 것을 알고 있으므로 @POST 주석을 추가합시다 마지막 부분은 사용자 객체를 요청 본문으로 선언하는 것입니다 이 작업은 @Body 어노테이션으로 수행됩니다 Retrofit은 이제 전달 된 사용자 객체에서 요청 본문을 만듭니다 여기에서 할

다음은 사용자 객체를 설명합니다 우편 배달부의 요청을 통해 알 수 있듯이 여기에는 네 가지 속성이 있습니다 우리는 문자열 이름을 가지고 있습니다 우리는 문자열 전자 메일을 가지고 있습니다 우리는 정수 나이를 가지고 있습니다

우리는 문자열 배열을 가지고 있습니다 사용자가 관심을 갖고있는 주제의 모두 비공개로 설정합시다 또한 우리가 사용자를 되 찾을 때 우리는 정수를 얻게 될 것입니다 이것은 nullable이므로 Integer 클래스를 사용합니다 마지막으로 ID없이 생성자를 추가해 봅시다

서버에 전달할 때 아직 ID가 없습니다 모든 것이 성공했는지 표시 할 수 있도록 ID에 대한 getter를 가져 오십시오 알았어, 그건 사용자 클래스 야 나는 MainActivity에 뛰어 들었다 나는 이미 지루한 시야의 물건과 개조의 기초를 준비했습니다

사용자가 '계정 만들기'버튼을 클릭하면이 속성을 읽어야합니다 , 사용자 개체를 만든 다음 서버로 보냅니다 그러자 우리는 새로운 사용자 객체를 가지고 있습니다 방금 생성 한 생성자를 사용하고 이름을 전달하고 전자 메일을 전달할 수 있습니다

정수가 된 나이를 전달하면 조금 변형됩니다 [일반적인 개발자 소음] 마지막으로, 우리는 문자열 배열이었던 주제를 보내야합니다 그러나 우리는 오직 하나의 EditText만을 가지고 있습니다 모든 쉼표 뒤에 [EditText input]을 나눕니다 그럼 topics

getText () toString ()을 사용하겠습니다 그 다음 쉼표마다 쪼개십시오 좋아요, 우리는 사용자 객체를 가지고 있습니다! 이제 우리는 그것을 서버에 보내야합니다 그래서 우리는 여기에 이것을 통과시키고 여기에 뛰어 들게 될 것입니다

이미 UserAPI 클라이언트를 준비했습니다 이제 우리가해야 할 일은 요청에 대한 호출 객체를 얻는 것입니다 그리고 우리는 단순히 client를 호출함으로써 그렇게 할 수 있습니다 우리의 새로운 방법이 있습니다 방금 읽은 사용자 객체를 끝점에서 전달할 수 있습니다

Call <> 객체가 반환됩니다 우리는 비동기로 작업하기 때문에 우리는 enqueue ()를 사용할 것이고 우리는 콜백을 전달할 것입니다 이제 무언가 잘못되었을 때, 나는 단지 작은 토스트를 할 것입니다 모든 것이 끝나면 Toast를 표시하고 사용자 ID를 표시합니다 우리는 사용자 객체를 서버에서 다시 가져올 때 사용자 ID를가집니다

마지막 비디오에서 알 수 있듯이 responsebody ()를 통해 서버 응답에 액세스 할 수 있으며 getter ID 메쏘드를 선언 했으므로 여기서 사용할 수 있습니다 마지막으로 우리는 요청을 실행하므로 서버가 수신하는 내용과 운동 자, 예제 입력을 추가해 보겠습니다 좋아, 그래! 사용자 ID가 있습니다

야 예를 들어 사용자가 PUT 요청으로이 모든 것을 보내면 그의 계정에서 우리는 단순히 종점 선언을 변경합니다 따라서 UserClient로 돌아가 이것을 PUT 요청으로 변경하면됩니다 그것이 우리가해야 할 모든 것입니다 또는 두 가지 방법이 모두 필요하다면 여기에 두 번째 끝점을 만들 수 있습니다

계정 및 업데이트 사용자 프로필 Retrofit에 대한 좋은 점은 아직 말하지 않았지만 객체 속성이 null 인 경우입니다 개장은 단지 그것을 무시할 것입니다 사용자 클래스에서 ID는 서버로 보낼 때 null입니다 null이기 때문에 Retrofit은 JSON 속성을 만들지 않습니다 그것은 단지 그것을 무시할 것입니다

우리가이 비디오에서 배운 것을 복습 해 봅시다 실제 GET, POST 및 PUT 요청의 차이를 살펴 보았습니다 또한 자바 객체를 요청 본문으로 서버에 보내는 방법을 배웠다 보고 주셔서 감사합니다! 우리가 여기와 주셔서 감사합니다 뭔가를 배웠고 더 많은 비디오를보고 싶다면 구독하십시오

이 시리즈에서 그것을 흔들어서 코딩을 즐기십시오 [멋진 아웃로 뮤직]