GET vs POST vs PUT в Retrofit 2 — уровень "Мобильный разработчик"
Вероятно, если вы человек-бекендер, то нужно углубляться сильнее. А для нас достаточно следующих фактов:
Указывая аннотации @GET, @POST или @PUT, вы определяете, в каком виде будут переданы параметры запроса на сервер
• GET
Параметры запроса вставляются в URL запроса с помощью аннотации Query(parameterName) в формате key=value
Параметры добавляются после знака "?"
Длина URL ограничена 2048 символами
Например, на выходе можете получить такой запрос: https://www.google.com/search?q=tg+dolgo.polo+dev
key = q
value = tg+dolgo.polo+dev
• POST
Параметры запроса вставляются не в URL, а в поле requestBody с помощью аннотации @Body в формате key=value
POST-запросом можно отправить файл, так как он поддерживает отправку бинарных данных
Например, на выходе можете получить такой запрос: https://www.google.com/search
Параметры при этом передаются отдельно в поле requestBody
• PUT
То же самое, что и POST. Нужен для логического разделения ролей запросов в API (просто другое название)
POST — обновляет данные по какому-то правилу
например, увеличивает количество яблок в коробке: apples++
PUT — устанавливает данные
например, устанавливает количество яблок в коробке: apples = 1
Поэтому говорят, PUT — идемпотентный — можно отправлять один и тот же запрос много раз, данные изменятся только один раз
Еще есть мнение, что POST для списков, а PUT для обращения по конкретному id
....
а менее известные DELETE, PATCH, OPTIONS, CONNECT и TRACE зачем и когда используются?