Вопрос

Я интуитивно чувствую, что веб-сервисы, основанные на документах, на практике предпочтительнее - это опыт других людей?Их легче поддерживать?(Я отметил, что SharePoint использует Any в качестве «типа документа» в своем интерфейсе WSDL, думаю, это делает его основанным на документах).

Кроме того, предлагают ли люди теперь услуги типа WSDL и Rest для одной и той же функциональности?WSDL популярен для генерации кода, но для внешних интерфейсов, таких как PHP и Rails, они, похоже, предпочитают отдых.

Это было полезно?

Решение

Документ или RPC — это вопрос только в том случае, если вы используете веб-службы SOAP, для которых требуется описание службы (WSDL).Веб-сервисы RESTful не используют WSDL, потому что сервис не может быть описан им, и создается впечатление, что REST проще и легче понять.Некоторые люди предложили ВАДЛ как способ описания служб REST.

Такие языки, как Python, Ruby и PHP, упрощают работу с REST.WSDL используется для генерации кода C# (прокси-сервера веб-службы), который можно легко вызвать из статического языка.Это происходит, когда вы добавляете Справочник по обслуживанию или Веб-ссылка в Visual Studio.

Предоставляете ли вы службы SOAP или REST, зависит от количества ваших пользователей.На ваш выбор влияет то, будут ли услуги использоваться через Интернет или только внутри вашей организации.SOAP может иметь некоторые функции (стандарты WS-*), которые хорошо работают для B2B или внутреннего использования, но не подходят для интернет-сервисов.

Документ/литерал и RPC для сервисов SOAP описаны здесь. Статья IBM DevelopWorks.Документ/литерал обычно считается лучшим для использования с точки зрения совместимости (Java с .NET и т. д.).Что касается того, легче ли поддержать, это зависит от ваших обстоятельств.Мое личное мнение таково, что люди склонны усложнять этот процесс, чем он должен быть, и более простой подход REST лучше.

Другие советы

Как уже упоминалось, по возможности лучше выбирать документальный литерал, а не RPC.Это правда, что старые библиотеки Java (Axis1, Glue и другие доисторические вещи) поддерживают только кодировку RPC, однако в современных наиболее современных библиотеках Java SOAP ее просто не поддерживают (например,AXIS2, XFire, CXF).Поэтому старайтесь предоставлять услугу, закодированную RPC, только в том случае, если вы знаете, что вам нужно иметь дело с потребителем, который не может добиться большего.Но опять же, возможно, только XML RPC мог бы помочь в этих устаревших реализациях.

Ответ BiranLy превосходен.Я просто хотел бы добавить, что соотношение document vs-RPC также может сводиться к проблемам реализации.Мы обнаружили, что Microsoft предпочитает документы, тогда как наши библиотеки на основе Java основаны на RPC.Что бы вы ни выбрали, убедитесь, что вы знаете, что подумают и другие потенциальные клиенты.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top