Для начала разберем, что такое REST?
REST — (Representational State Transfer или передача/изменения состояния через представления) — это архитектура, принципы построения распределенных гипермедиа систем WWW (World Wide Web), включая универсальные способы обработки и передачи состояний ресурсов по HTTP
Другими словами, это общность компонентов позволяющие обмениваться/взаимодействовать между независимыми /промежуточными компонентами систем запросами. Позволяет снизить загрузку и обезопасить передачу данных. Используется везде, где есть ограничение пропускной способности соединения, нужно кешировать запросы, система масштабируется, в сервисах AJAX и тд
При описании представление REST, указывается URL обращения и выглядит примерно так:
GET /Client/ — получить список всех клиентов
GET /Client/3/ — получить клиента номер 3
PUT /Client/ — добавить клиента (данные в теле запроса)
POST /Client/3 – изменить клиента (данные в теле запроса)
DELETE /Client/3 – удалить клиента 3
Само представление, может быть в виде запроса HTTP или в виде определенного формата JSON/HTML/XML/текст
Так же существуют паттерны, которые идут как исключение
POST /Client/ – добавить клиента (данные в теле запроса)
POST /Client/3 – изменить клиента (данные в теле запроса)
POST /Client/3 – удалить клиента (тело запроса пустое)
Для контроля, чтобы все подряд не могли вносить изменения, можно использовать HTTP Authentication.
Пример:
Пользователь на сайте банка(клиент) нажимает кнопку получить данные по балансу счета, сайт генерирует http запрос к северу, чтобы получить данные, rest сервер читает запрос и формирует файл с данными по балансу счета и отправляет клиенту, клиент обрабатывает файл и отображает баланс пользователю.
И что такое SOAP?
SOAP (Simple Object Access Protocol или простой протокол доступа к объектам) — протокол обмена структурированными сообщениями между системами.
В данном случае системы обмениваются данными через XML файлы, по протоколам или папкам SMTP, FTP, HTTP, HTTPS. Позволяет пересылать файлы и отправлять с вложением.
Чем отличается REST от SOAP?
REST поддерживает различные форматы: text, json, xml. SOAP – только XML
REST работает только по HTTP. SOAP по различным протоколам
REST может работать с ресурсами по URL. SOAP только с реализованными операциями в интерфейсах.
SOAP не может помещен в кеш, REST кешируется
SOAP поддерживает SSL и WS-security. REST – только SSL.
REST использовать проще, SOAP безопаснее