веб-сервисы API: обернуть или не обернуть? - PullRequest
0 голосов
/ 29 июля 2010

Предоставляя API веб-сервисов (ну, скажем, SOAP), вы предоставляете вместе с ним библиотечную оболочку, чтобы людям было «легче» пользоваться?Или вы просто упаковываете WSDL и документацию для него и позволяете людям понять, что с ним делать?

Что обычно делают люди?Я видел множество примеров, где предоставляется обертка, но она всегда казалась мне непродуктивной.

Ответы [ 2 ]

1 голос
/ 30 июля 2010

Как вы собираетесь поддерживать несколько стеков веб-сервисов - JAX-WS, AXIS2, CXF и т. Д.? Мой выбор - WSDL / XSD. На практике я получил сервис, построенный с помощью JAX-WS, и клиент с AXIS2. И я не хочу создавать клиента, которым вы собираетесь пользоваться. Я даже не знаю ваш предпочтительный стек веб-сервисов и ограничения вашей версии JVM. Например, я могу вызвать веб-сервис из Java 1.4 - здесь нет аннотаций и невозможно использовать клиентскую библиотеку, созданную с аннотациями для Java 1.5. Таким образом, WSDL является правильным способом построения ws-клиента вместо предоставления сгенерированной клиентской библиотеки.

1 голос
/ 29 июля 2010

WSDL легко обнаруживается (все функции и типы как заявлены), поэтому обычно нет необходимости предлагать какой-либо пакет с ним и минимальную документацию (примените XSL к WDSL, и этого обычно достаточно :)). Моя теория о появлении библиотек / оболочек заключается в том, что это напрямую связано с мерами безопасности / необходимой аутентификацией и хешами (обычно: конкатенация некоторых полей с секретом и хэшированием), о которых просто не хочется отвечать на каждый вопрос больше.

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

При этом, я бы сказал, о веб-сервисах, с которыми я сталкивался: около 60% предоставленных библиотек были безнадежным спагетти-кодом, подходящим для бина, 30% не были кодом, который я бы использовал, но могли прояснить некоторые вопросы, на которые документация не ответила, и только около 10% были достаточно пригодными для интеграции в проект (или проект небольшой и / или достаточно худший, чтобы ему не было хуже).

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