Преобразование SOAP в REST - PullRequest
2 голосов
/ 08 августа 2011

У меня есть веб-сервис, написанный на C # с использованием SOAP.Клиент запросил, чтобы такая же служба была доступна как служба на основе REST.

Есть ли какой-нибудь умный / быстрый способ, которым я могу достичь этого, или я смотрю на перестройку из новой?

Ответы [ 3 ]

5 голосов
/ 08 августа 2011

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

3 голосов
/ 08 августа 2011

SOAP и REST отличаются не только концептуально, но и механически.

Концептуально методы SOAP - это в значительной степени RPC, удаленные процедуры.Таким образом, ваши веб-методы выглядят как «GetListOfCustomers» и «DeleteCustomer».Находясь в REST, вы моделируете клиентов как ресурсы и используете HTTP-глаголы для этого ресурса.Чтобы получить список клиентов, клиент отправит HTTP GET, а сервер вернет представление клиента в XML, JSON, HTML или произвольном формате.Представление клиента может иметь встроенные URL-ссылки, которые позволят клиентскому коду удалить клиента, например.Это называется HATEOAS

Механически SOAP - это слой поверх HTTP.Уровень, который игнорирует и переопределяет существующие возможности HTTP, такие как конверт, глаголы, кэширование, кодирование и т. Д. В отличие от REST, который опирается на все эти функции HTTP.Механически REST проще, потому что в SOAP нет дополнительного уровня.

Когда вас попросили сделать существующий сервис SOAP доступным как REST, это, вероятно, подразумевало чисто механические аспекты.Вам, вероятно, понадобится «XML RPC over HTTP», который потребует некоторых усилий с вашей стороны, но может оказаться не таким сложным, как перепроектирование API с SOAP / RPC на REST / HATEOAS.

0 голосов
/ 12 августа 2011

Решение будет зависеть от того, как вы реализовали веб-сервис SOAP.

Это не «конверсия».Вы будете писать сервис на основе REST для того же, что и ваш сервис SOAP.Если вы правильно разработали SOAP-сервис, то сможете использовать большую часть кода.После этого вы сможете развернуть одну службу, которая удовлетворяет обоим требованиям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...