Что такое REST? Если вы занимаетесь, веб-программированием, наверняка, вам приходилось сталкиваться с этим понятием. 

Давайте будем разбираться, что это такое и зачем это нужно.

Представим, что мы являемся веб-программистами и разрабатываем какое-то большое веб-приложение. Может быть мы разрабатываем свою социальную сеть, например, как вконтакте, или сервис email рассылок, и.т.д.

На начальном этапе всем может быть хорошо, но как только дело дойдет до того, что нужно будет дать возможность каким-то другим сервисам или приложениям взаимодействовать с нашим, здесь могут начинаться проблемы. 

Например, нужно дать возможность изменять настройки нашего веб-приложения, например, через мобильное приложение или мы хотим выводить какие-то внутренние части нашего приложения на сторонних сайтах. 

Например, если мы разрабатываем социальную сеть вроде вконтакте, нам может понадобиться выводить количество подписчиков в определенной группе на определенном сайте. 

Как мы можем приложению с другого сайта запросить данные с нашего веб-сервера и, чтобы он мог вывести эту информацию. 

Какое-то другое приложение может запрашивать какую-то другую информацию. 

Также наше приложение может общаться  с внешней базой данных. Сохранять и получать оттуда какие-то данные.   

Для того, чтобы это стало возможным, нашему сервису нужен некий интерфейс, возможность, которая могла бы предоставить всем сторонним приложениям возможность получать данные с нашего приложения обновлять и обмениваться данными.

Системы, которым предстоит взаимодействовать в этой клиент-серверной системе данных, могут быть очень разные. На каждом клиенте может использоваться свой язык программирования, операционная система и.т.д.

Обмениваться данными всем этим системам может быть довольно сложно. 

Как же сделать, чтобы все эти системы умели понимать друг друга даже если они разговаривают на разных языках. 

Если все эти системы умеют работать по протоколу HTTP по сети Интернет, помочь решить проблему стыковки этих разных систем может так называемый REST.

Что это это такое. 

REST (Representational State Transfer ("передача состояния представления")). 

По сути, REST - это просто набор правил. Там есть 6 основных правил, как программисту организовать написание серверного кода приложения, чтобы все системы легко обменивались данными и все системы можно было бы легко масштабировать и увеличивать. 

REST - это просто набор правил к написанию кода. Код приложения этим правилам может как соответствовать (так называемый RESTful сервис), так и не соответствовать. 

Можно обмениваться данными с разными сервисами и без REST. В этом случае у вас могут возникать сложности в обмене данными между этими устройствами.

REST - это некий стандарт, который приводит все в соответствие и устройства могут без проблем этими данными обмениваться. 

Если вы разработали RESTfull приложение, то по окончании разработки у вас будет некий список url-адресов, с помощью которых можно будет общаться с нашим веб-сервером. Сервер с их помощью может получать запросы на получение, обновление, добавление или удаление данных. 

С помощью списка таких адресов мы предоставляем некий интерфейс, с помощью которого другие сервисы с ним могут взаимодействовать.

Обращаясь к списку таких адресов можно выполнять такие запросы как GET (получить), POST (сохранить), PUT (обновить), DELETE (удалить).

Различные примеры приложений, которые разработаны по принципам REST, вы можете посмотреть в видео выше.