Я реализовал два сервиса REST: Twitter и Netflix. Оба раза я изо всех сил пытался найти применение и логику, связанные с решением выставить эти сервисы как REST вместо SOAP. Я надеюсь, что кто-нибудь может подсказать мне, что мне не хватает, и объяснить, почему REST использовался в качестве реализации сервиса для таких сервисов, как эти.
-
Реализация службы REST занимает бесконечно больше времени, чем реализация службы SOAP. Существуют инструменты для чтения всеми современными языками/средами/платформами в WSDL и вывода прокси-классов и клиентов. Внедрение службы REST осуществляется вручную и - получается - читая документацию. Более того, при реализации этих двух сервисов вы должны сделать "догадки" относительно того, что будет возвращаться через канал, поскольку нет реальной схемы или справочного документа.
-
Зачем писать REST-сервис, который все равно возвращает XML? Единственное отличие состоит в том, что с REST вы не знаете типов, которые представляет каждый элемент/атрибут, - вы сами можете его реализовать и надеетесь, что однажды строка не встретится в поле, которое вы считали всегда int. SOAP определяет структуру данных с использованием WSDL, так что это не сложно.
-
Я слышал жалобу, что с SOAP у вас есть "накладные расходы" на конверт SOAP. В наши дни, действительно ли нам нужно беспокоиться о горстке байтов?
-
Я слышал аргумент, что с REST вы можете просто вставить URL в браузер и посмотреть данные. Конечно, если ваша служба REST использует простую аутентификацию или не использует ее. Сервис Netflix, например, использует OAuth, который требует от вас подписывать и кодировать вещи, прежде чем вы даже сможете отправить свой запрос.
-
Зачем нам нужен "читаемый" URL для каждого ресурса? Если бы мы использовали инструмент для реализации сервиса, действительно ли мы заботимся о реальном URL?