Веб-службы XML — это технология публикации, обнаружения и использования компонентов приложения в Интернете. Он основан на ряде стандартов и протоколов, таких как WSDL, SOAP, RDF и RSS. Вот некоторые из них:
Характеристики веб-служб XML включают в себя:
В практических приложениях вы можете создавать и развертывать веб-сервисы для реализации различных функций и сервисов — от простого преобразования данных до сложной бизнес-логики.
WSDL да Web Services Description Language
аббревиатура
WSDL используется для описания Web Служить
WSDL к XML
официальное письмо
WSDL-документ
WSDL-документописывать Понятноодин Web Служить
。它指定Понятно Служитьиз Расположениеки Служитьизметод,Используйте следующий основной элемент:
Описание элемента
<types> определение Web Служить
использовал (XML Schema
) тип данных
<message> Для каждой операции определение элемента данных
<portType> Описывает действия, которые можно выполнить, и соответствующие сообщения.
<binding> Формат данных для каждого порта
Основная структура WSDL-документиз выглядит следующим образом:
`<definitions>`
`<types>`
тип данныхопределение........
`</types>`
`<message>`
Определение передачи данных....
`</message>`
`<portType>`
Комплекс операций...
`</portType>`
`<binding>`
Спецификация формата данных протокола....
`</binding>`
`</definitions>`
пример WSDL
`<message name="getTermRequest">`
`<part name="term" type="xs:string"/>`
`</message>`
`<message name="getTermResponse">`
`<part name="value" type="xs:string"/>`
`</message>`
`<portType name="glossaryTerms">`
`<operation name="getTerm">`
`<input message="getTermRequest"/>`
`<output message="getTermResponse"/>`
`</operation>`
`</portType>`
существоватьэтот Примерсередина,<portType>
элементы будут "glossaryTerms" определение — это имя порта, «getTerm» определение — это имя операции.
Операция getTerm имеет входное сообщение с именем «getTermRequest» и выходное сообщение с именем «getTermResponse».
<message>
Элементопределение имеет каждую информацию, частичную и связанный с ней тип. данных。
<portType>
элемент
<portType>
элементопределение Понятноодин Web Служить
,Вы можете выполнять операции и связанные с ними операции.
Операция запрос-ответ является наиболее распространенной, но WSDL имеет четыре типа:
тип определение
Односторонняя. Эта операция может получать информацию, но не возвращает ответ.
Запрос-ответ. Эта операция принимает запрос и возвращает ответ.
Запросить ответ. Эта операция отправляет запрос и ожидает ответа.
Уведомление. Эта операция может отправлять информацию, но не будет ждать ответа.
Односторонняя операция WSDL
Пример односторонней операции:
`<message name="newTermValues">`
`<part name="term" type="xs:string"/>`
`<part name="value" type="xs:string"/>`
`</message>`
`<portType name="glossaryTerms">`
`<operation name="setTerm">`
`<input name="newTerm" message="newTermValues"/>`
`</operation>`
`</portType >`
существоватьвышеиз Примерсередина,portType
"glossaryTerms" определение один по имени "setTerm" односторонняя операция.
"setTerm" Разрешено использовать операции "newTermValues" Ввод нового сообщения, включающего входные параметры. "term" и "ценить". Но да,没有длядействоватьопределениевыход。
Операции запрос-ответ WSDL
Пример операции запрос-ответ:
`<message name="getTermRequest">`
`<part name="term" type="xs:string"/>`
`</message>`
`<message name="getTermResponse">`
`<part name="value" type="xs:string"/>`
`</message>`
`<portType name="glossaryTerms">`
`<operation name="getTerm">`
`<input message="getTermRequest"/>`
`<output message="getTermResponse"/>`
`</operation>`
`</portType>`
существоватьвышеиз Примерсередина,portType
"glossaryTerms" определение Понятноодиноперации запрос-ответ,Называется «getTerm».
Для операции getTerm требуется входное сообщение с именем «getTermRequest», содержащее параметр с именем «term», и она возвращает выходное сообщение с именем «getTermResponse», содержащее параметр с именем «value».
WSDL обязательностьопределение Понятно Web Служить
Формат изинформации и протокол подробно.
Пример операции запрос-ответ:
`<message name="getTermRequest">`
`<part name="term" type="xs:string"/>`
`</message>`
`<message name="getTermResponse">`
`<part name="value" type="xs:string"/>`
`</message>`
`<portType name="glossaryTerms">`
`<operation name="getTerm">`
`<input message="getTermRequest"/>`
`<output message="getTermResponse"/>`
`</operation>`
`</portType>`
`<binding type="glossaryTerms" name="b1">`
`<soap:binding style="document"`
`transport="http://schemas.xmlsoap.org/soap/http" />`
`<operation>`
`<soap:operation soapAction="http://example.com/getTerm"/>`
`<input><soap:body use="literal"/></input>`
`<output><soap:body use="literal"/></output>`
`</operation>`
`</binding>`
binding
элемент имеет два свойства - name
и type
。
name
свойство (можно использовать любое имя) определение обязательностииз имени,type
Свойство указывает на связанный порт, в данном случае "glossaryTerms" порт.
soap:binding
элемент имеет два свойства - style
и transport
。
style
свойство Можеткда "rpc" или "документ". В этом случае мы используем document
。transport
свойствоопределениехотетьиспользовал SOAP
протокол. В этом случае мы используем HTTP
。
operation
элементопределение Понятно portType
Каждая операция раскрыта.
Для каждой операции должен быть соответствующий SOAP
действие. Вы также должны указать, как кодировать ввод и вывод. существуют В этом примере мы используем "literal"。
SOAP да Simple Object Access Protocol
аббревиатура
Протокол связи SOAP для приложений
SOAP используется для отправки и получения информации в формате.
SOAP да Платформенная независимость
SOAP на основе XML
Зачем использовать SOAP?
Web приложение
способен Интернет
Очень важно общаться на да.
существовать приложение
Лучший способ общения между дапроходить HTTP
,потому что HTTP
подчиняется всем Интернет
浏览устройствои Служитьустройствоизподдерживать。SOAP
Просто да был создан для достижения этой цели.
SOAP
Обеспечивает работающее существование различных операционных систем, с использованием различных технологий и языков программирования. приложение
способ общения между ними.
Строительные блоки SOAP
SOAP
Информация проста XML
документ,Включатьк Внизэлемент:
один Envelope
элемент, используемый для идентификации XML
Документация как SOAP
информация
один содержит информацию заголовка из Header
элемент
один содержит информацию о вызове и ответе Body
элемент
один содержит информацию о статусе ошибок. Fault
элемент
кна всехэлемент Все заявленосуществовать SOAP
в пространстве имен конверта по умолчанию
Грамматические правила
к Внизда一些重хотетьиз Грамматические правила:
SOAP
информация должна быть использована XML
Кодировать
SOAP
информация должна быть использована SOAP Envelope
пространство имен
SOAP
информацияне может содержать DTD
Цитировать
SOAP
информацияне может содержать XML
инструкции по обработке
Долженпространство имен Воля Envelope
определениедля SOAP Envelope
。
Если используется другое изпространство имен,приложение
Создаст ошибку и отбросит информацию.
АтрибутcodingStyle
encodingStyle
свойствоиспользуется дляопределениедокументсерединаиспользовалтип данных。Долженсвойство Можетк Появлятьсясуществоватьлюбой SOAP
элемент и применяется к этому элементу и всем его подэлементам.
SOAP
информация не имеет кодировки по умолчанию.
SOAP Header элемент
Необязательный SOAP Header
элемент содержит около SOAP
информацияизприложение конкретной информации (например, проверка личности, оплата и т. д.).
Если сохранитьсуществовать Header
элемент, ты должен положить его в существование Envelope
элементиз Нет.одинребенокэлемент Расположение。
Уведомление:Header
элемент Из Все прямые подэлементы должны быть дапространством именограниченныйиз。
SOAP
существоватьпо умолчаниюпространство именсерединаопределение Понятно三个свойство。Этисвойствода:mustUnderstand
、actor
и encodingStyle
。
SOAP Header
Как получателю следует поступить в этой ситуации? SOAP
информация。
mustUnderstand
свойство
SOAP mustUnderstand
Свойство можно использовать, чтобы указать получателю, должна ли быть обработана запись заголовка.
Если mustUnderstand="1"
добавить в Header
элементребенокэлемент означает обработку Header
Получатель должен идентифицировать элемент. Если получатель не распознает элемент, процесс существует. Header
потерпит неудачу.
грамматика
soap:mustUnderstand="0|1"
actor
свойство
SOAP
Информация может передаваться по пути информации с разными конечными точками, передаваемыми от отправителя к
Ресивер. Однако,SOAP
информацияиз Не все части да могут ориентироваться на конечную конечную точку, в то время как да может нацеливать информацию на несколько конечных точек на пути.
SOAP actor
свойство используется для Header
элемент направлен к определенной конечной точке.
грамматика
soap:actor="URI"
АтрибутcodingStyle
encodingStyle
свойствоиспользуется дляопределениедокументсерединаиспользовалтип данных。Долженсвойство Можетк Появлятьсясуществоватьлюбой SOAP
элемент, он будет применен к содержимому этого элемента и всем его подэлементам.
SOAP
информация не имеет кодировки по умолчанию.
грамматика
soap:encodingStyle="URI"
SOAP Body элемент
необходимый SOAP Body
элемент содержит информациюфактическую SOAP
информация, для информациииз конечной точки.
SOAP Body
элементиз直接ребенокэлемент Можеткдапространство именограниченныйиз。
Пример
<?xml version="1.0"?>
<soap:Envelope
</m:GetPrice>
</soap:Body>
</soap:Envelope>
Выше из Пример запросил цену яблока. Обратите внимание, что вышеизложенное m:GetPrice
и Item
элементдаприложение конкретного изэлемента. они не принадлежат SOAP
пространство имен
SOAP Fault элемент
Необязательный SOAP Fault
Элемент используется для указания информации об ошибке.
SOAP Fault
элемент содержит SOAP
Информация о статусе изошибки.
Если сохранитьсуществовать Fault
элемент, он должен быть таким Body
элементизребенокэлемент Появляться。Fault
элементможет толькосуществовать SOAP
Появляется один раз в информации.
SOAP Fault
элементиметьк Внизребенокэлемент:
ребенок Описание элемента
<faultcode>
Код, используемый для идентификации ошибки
<faultstring>
Понятное объяснение ошибки
<faultactor>
Информация, вызвавшая возникновение ошибки
<detail>
Содержит и Body
Информация об ошибках, связанных с конкретным применением элемента
Коды ошибок SOAP
когдаописыватьошибкачас,faultcode
элемент должен использоваться при определениииз faultcode
ценить:
ошибка описывать
VersionMismatch
существовать SOAP Envelope
элементизпространство В именах обнаружено недопустимое изпространство. имен
MustUnderstand
Header
элементиз立即ребенокэлемент,mustUnderstand
свойство установлено в "1", не понял
Client
информация не в правильном формате или содержит неверную информацию
Server
Возникла проблема со Служить, поэтому информация не может быть продолжена.
HTTP-протокол
HTTP
проходить TCP/IP
общаться。HTTP
Использование клиента TCP
подключиться к HTTP
Служить. После установления соединения клиент может отправить HTTP
проситьинформация:
POST /item HTTP/1.1
Host: 189.123.255.239
Content-Type: text/plain
Content-Length: 200
Затем сервер Служить обрабатывает запрос и отправляет HTTP
Ответ отправляется обратно клиенту. В ответе содержится код состояния, указывающий статус запроса:
200 OK
Content-Type: text/plain
Content-Length: 200
существоватьвышеиз Примерсередина,Служитьустройство返回Понятно状态代码 200
。этотда HTTP
Стандартный код успеха.
Если сервер не может декодировать запрос, он может вернуть следующее:
400 Bad Request
Content-Length: 0
SOAP
Определение нормы SOAP
информацияиз структур, но не определение того, как они взаимозаменяются. Этот разрыв образуется так называемыми из "SOAP-привязка" наполнять。SOAP
обязательность позволяет осуществлять эффективный обмен с использованием протокола передачи SOAP
механизм информирования.
большинство SOAP
Реализации предоставляют привязки для общих транспортных протоколов, таких как HTTP
или SMTP
。
HTTP
дасинхронныйизи широко используется。SOAP HTTP
В запросе указано не менее двух HTTP
голова:Content-Type
и Content-Length
。
SMTP
даасинхронный из, обычно существует в определенной ситуации или используется в особых обстоятельствах.
Java
из SOAP
Реализация обычно JMS
(Информационная система Java
)протокол提供Понятно特定изобязательность。
Content-Type
SOAP
запрос и ответ из Content-Type
Определение заголовка информативно MIME
тип и используется для запросов или ответов из XML
Кодировка тела текста (необязательно).
Content-Type: MIMEType; charset=character-encoding
Пример
POST /item HTTP/1.1
Content-Type: application/soap+xml; charset=utf-8
Content-Length
SOAP
запрос и ответ из Content-Length
Заголовок указывает количество байтов в теле запроса и ответа.
Content-Length: bytes
Пример
POST /item HTTP/1.1
Content-Type: application/soap+xml; charset=utf-8
Content-Length: 250
Для того, чтобы облегчить друзьям на других устройствах и платформах просмотр предыдущих статей:
Поиск общедоступной учетной записи WeChat:Let us Coding
,сосредоточиться Вы можете получить последнюю статью после
Если вы нашли это полезным после прочтения, пожалуйста, поставьте лайк, соберите и подпишитесь