Если продавец дает мне определенный формат
XML, который я могу отправить заполнены
данные на запрос, и я делаю простой
HTTP POST через Интернет, проходящий в
строка XML в качестве полезной нагрузки, это
вызов веб-службы? Если так, есть ли
конкретное название для него, этот вид сети
сервис?
Это все еще веб-сервис, да. У него нет «официального» имени, я обычно называю его XML-over-HTTP, главным образом потому, что не могу придумать лучшего имени.
SOAP. Как это работает? .. Я читал
учебник W3Schools и я
понимаю, что есть очень
конкретная форма XML, которая
стандартизировано в соответствии с W3C
стандарты, которые мы используем, чтобы пройти тот же
такие сообщения, как в варианте 1
SOAP предоставляет стандартный слой-обертку для сообщений, которые вы отправляли в (1). Эта оболочка предоставляет информацию, например, указание на то, какую операцию вы вызываете. Он также может предоставлять услуги безопасности, информацию о транзакциях и так далее. Обычно это довольно тонкий слой.
А как насчет WSDL? Когда продавец
пришлите мне WSDL и что мне с ним делать
? Я думаю, что я могу генерировать классы из
Это. Если да, то что мне делать с
сгенерированные классы?
Опять же, WSDL - довольно тонкий слой, на этот раз вокруг XML-схемы. Он определяет операции, которые сообщения SOAP будут вызывать во время выполнения, а также типы схем запросов и ответов. Это способ формализации интерфейса обмена документами XML.
Скажем, например, у вас была XML-схема и у вас есть веб-сервис, как вы описали
- Использование JAXB для генерации исходного кода Java из схемы
- Отправка XML-документов, соответствующих этой схеме, через HTTP в веб-службу
С WSDL и SOAP вы бы немного расширили это:
- Напишите тонкую оболочку WSDL вокруг схемы XML, формализуя доступные операции.
- Используйте инструмент импорта WSDL для создания заглушек клиент / сервер для этого WSDL / Schema. В Java это часто включает JAXB.
- Использование клиента / сервера SOAP для вызова веб-службы
Как видите, это по сути тот же процесс. Разница заключается в том, что SOAP / WSDL предоставляет инструментам дополнительную информацию и контекст, позволяя этим инструментам выполнять большую часть работы за вас. Это не сильно отличается, хотя.