Должен ли я использовать службу на основе REST для подключения C # и Java (или другой технологии) через API? - PullRequest
2 голосов
/ 17 июня 2011

Мы создаем API, который соответствует преимуществам архитектуры на основе REST.Однако, где я борюсь, так это с тем, как легко использовать различные технологии.

Его служба AC # WCF и, если потребление через c # является пустяком, 1) передать dll с контрактом вызывающему проекту 2) использовать универсальный WebChannelFactory для переноса контракта перед вызовом url и метода.

Однако, учитывая, что это API, я хочу, чтобы другие системы, не основанные на .net, могли взаимодействовать с ним.Я слышу аргумент о том, почему разработчики должны читать всю документацию для службы на основе REST, вручную создавать запрос http (на своем языке по своему выбору), а затем анализировать ответ.Когда, если мы создадим веб-сервис с использованием SOAP, все, что им нужно будет сделать, это добавить ссылку на него и позволить своей технологии coice создать объекты вызова и ответа для работы с SOAP и выполнить вызов с использованием нескольких строк кода (яЯ знаю, это легко в c #, и, очевидно, java тоже прост).

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

Ответы [ 5 ]

1 голос
/ 17 июня 2011

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

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

1 голос
/ 17 июня 2011

Я также определенно рекомендую использовать SOAP для этой цели.Вы уже упоминали большинство преимуществ SOAP против REST.

Почему вы даже действительно хотите создать службу REST, если все факты указывают на SOAP?Для меня REST имеет преимущество только в более быстром доступе, но в большинстве случаев его не так много, что было бы оправданно не использовать преимущества SOAP.

Кстати: если вы создаете обычный Web-сервис .net, вы получаетеоба «бесплатно», потому что по умолчанию они поддерживают SOAP и REST (возможно, вам нужно включить другой или в файле web.config).

0 голосов
/ 17 июня 2011

Из того, что вы описали, REST - ваш лучший вариант.

Вот что нужно учитывать:

  1. Существует несколько стандартов, использующих SOAP, MS продвигает WS-I Basic Profile 1.1, который не так широко поддерживается за пределами мира MS, и у людей могут возникнуть проблемы с подключением к вашему сервису.

  2. REST имеет много преимуществ по сравнению с SOAP, просто используя HTTP (тестирование, кэширование и т. д.).Хотя, если вам нужна сложная защита или обмен сообщениями, REST не будет поддерживать это готово.

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

0 голосов
/ 17 июня 2011

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

Одним из преимуществ разработки вашего сервиса с WCF является то, что вы абстрагируете конечные точки (SOAP, REST и т. Д.) От реального приложения. Поэтому кажется преждевременным исключать SOAP или REST.

Подход может заключаться в том, чтобы сделать ваш сервис, определив звуковые объекты, которые вы хотели бы выставить для потребления. Как только вы это разработали, начните пытаться использовать сервис с разных платформ / инструментов. Вы можете узнать, что использование службы REST не так сложно, как вы думаете. Тем не менее, вы также можете узнать, что вам просто не нужен REST в данный момент, но всегда есть возможность включить его , если это необходимо.

0 голосов
/ 17 июня 2011

Обратный аргумент заключается в том, что SOAP работает только на платформах, на которых есть анализатор WSDL и стек SOAP.Без него совершенно нецелесообразно когда-либо использовать его, тогда как REST можно сводить к «отправке HTTP-запроса, анализу результатов как XML».

Да, для определенных типов API на платформах, поддерживающих его, SOAP будет прощеработать с.А в других случаях его нет.:) Это действительно зависит от того, что вы пытаетесь сделать.

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

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