Как стать автором
Обновить

Retrofit — библиотека для обмена с интернетом (Часть 1)

Время на прочтение3 мин
Количество просмотров11K
Содержание

  1. Описание API Retrofit
  2. HTTP метода
  3. Подключение Retrofit

Описание API Retrofit


По описанию на сайте разработчика библиотеки это типизированный http клиент для Android. Официальная документация доступна тут. Для простоты восприятия необходимо описать некоторые понятия.

  1. Как происходит обмен данными в сети
  2. Что такое REST web серверы
  3. Описание Retrofit
  4. Http методы

  1. Все устройства в сети обмениваться данными между собой через протоколы обмена (TCP/IP, Http, Https, Ftp и т.д). Протокол — это обще согласованные правила упаковки, адресации, отправки и получения данных. При помощи этих протоколов клиент и сервер (Web сервер) обмениваться данными между собой
  2. Rest — это архитектура web серверов которое используется для обмена данными на протоколах http и https. Rest представляет собой набор правил для выполнения методов HTTP.
  3. Retrofit это API на языке java которые упрощает общение с rest веб серверами. Позволяет выполнять метода HTTP непосредственно на языке java
  4. Http методы — стандартизированные форматы процедур которые клиент запрашивает web сервер выполнить. Методы http: Get, Head, Post, Put, Delete, Trace, Options, Connect и Patch. Retrofit поддерживает только первые 5

HTTP метода


1. Get и Head методы считаются самыми безопасными методами т.к. получают данные не изменяя их где либо. Первый метод получает заголовок и тело ответа тогда как второй только заголовок. Ответы от сервера приходят в виде коллекций значений. При запросе мы можем указать дополнительные параметры для отбора
На пример в запросе someadress.ru?list=10&name=ivanov мы передаем параметры отбора list = 10 и name = ivanov

2. Delete – метод выполняет одноименную функцию, удаляет записи на сервере. Для метода не требуется тело запроса

3. Post и Put методы создают или изменяют данные на сервере. В отличие от других этих методах наличие тело запроса обязательно. Put метод создаст запись на сервере если такого нет, если запись присутствует то он его изменит. Post создает записи и запускает процедуры на сервере. Можно запомнить следующее выражения: Put – отправляет данные и Post – Отправляет сообщение на сервер

Примеры приведены в IDE Android Studio

Нужно настроить обмен таким образом чтоб обмен между клиентом и сервером проходил на одном формате. В основном используются 3 формата данных. Ниже приведен пример отображение на трёх форматах:

JSON

{
"id":"1234",
"name":"Vlad"
}

XML

<root>
<id>1234</id>
<name>Vlad</name>
</root>

Protocol Buffer

{
id:"1234",
name:"Vlad"
}

Жаль, что в этом списке нет формата для java класса, что-то такое:

public class root{
private string id;
private string name;
…
}

Для передачи объектов java на сервер, который может работать на любом языке, retrofit использует конвертор данных (Data converter). Эти конверторы так же называются библиотеки сериализации данные. У Retrofit включает в себя 6 конверторов которые используют самые популярные библиотеки сериализации: Gson, Jackson, Moshi, Protobuf, Wire и Simple XML. Какой из конверторов использовать зависит от того какой формат принимает сервер.
Для примеров использую GSon конвертор т.к. он прост в использовании

Подключение Retrofit


Для демонстрации возможностей retrofit создам demo приложение, версия Android 7.0 (Nougat). Переходим в раздел Download на официальном сайте retrofit и копируем строку для grade в моем случаи.

implementation 'com.squareup.retrofit2:retrofit:2.6.1'
<source/>
Далее, нам нужен пакет конвертора данных Gson. Если прокрутить страницу загрузки retrofit чуть выше то можно увидеть список поддерживаемых конверторов. Копируем строку пакета и добавляем в build указывая номер версии retrofit после двоеточие. 

<source lang="kotlin">
implementation 'com.squareup.retrofit2:converter-gson:2.6.1'
<source/>
Синхронизируем проект (гиперссылка Sync Now справо-сверху). После удачной синхронизации мы готовы к использованию retrofit.
Теги:
Хабы:
Всего голосов 17: ↑0 и ↓17-17
Комментарии4

Публикации

Истории

Работа

Java разработчик
358 вакансий

Ближайшие события