Содержание
По описанию на сайте разработчика библиотеки это типизированный http клиент для Android. Официальная документация доступна тут. Для простоты восприятия необходимо описать некоторые понятия.
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
XML
Protocol Buffer
Жаль, что в этом списке нет формата для java класса, что-то такое:
Для передачи объектов java на сервер, который может работать на любом языке, retrofit использует конвертор данных (Data converter). Эти конверторы так же называются библиотеки сериализации данные. У Retrofit включает в себя 6 конверторов которые используют самые популярные библиотеки сериализации: Gson, Jackson, Moshi, Protobuf, Wire и Simple XML. Какой из конверторов использовать зависит от того какой формат принимает сервер.
Для примеров использую GSon конвертор т.к. он прост в использовании
Для демонстрации возможностей retrofit создам demo приложение, версия Android 7.0 (Nougat). Переходим в раздел Download на официальном сайте retrofit и копируем строку для grade в моем случаи.
- Описание API Retrofit
- HTTP метода
- Подключение Retrofit
Описание API Retrofit
По описанию на сайте разработчика библиотеки это типизированный http клиент для Android. Официальная документация доступна тут. Для простоты восприятия необходимо описать некоторые понятия.
- Как происходит обмен данными в сети
- Что такое REST web серверы
- Описание Retrofit
- Http методы
- Все устройства в сети обмениваться данными между собой через протоколы обмена (TCP/IP, Http, Https, Ftp и т.д). Протокол — это обще согласованные правила упаковки, адресации, отправки и получения данных. При помощи этих протоколов клиент и сервер (Web сервер) обмениваться данными между собой
- Rest — это архитектура web серверов которое используется для обмена данными на протоколах http и https. Rest представляет собой набор правил для выполнения методов HTTP.
- Retrofit это API на языке java которые упрощает общение с rest веб серверами. Позволяет выполнять метода HTTP непосредственно на языке java
- 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.