WSDL 連接埠
<portType> 元素是最重要的 WSDL 元素。
WSDL 連接埠
<portType> 元素是最重要的 WSDL 元素。
它可以描述一個 web service、可執行的操作,以及相關的訊息。
可以把 <portType> 元素比喻為傳統程式語言中的一個函式庫(或一個模組、或一個類別)。
操作類型
請求-回應是最普通的操作類型,不過WSDL 定義了四種類型:
類型 | 定義 |
---|---|
One-way | 此動作可接受訊息,但不會回傳回應。 |
Request-response | 此動作可接受一個請求並會傳回一個回應 |
Solicit-response | 此操作可傳送一個請求,並會等待一個回應。 |
Notification | 此動作可傳送一則訊息,但不會等待回應。 |
One-Way 操作
一個 one-way 操作的範例:
<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 >
<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 >
在這個範例中,連接埠 "glossaryTerms" 定義了一個名為 "setTerm" 的 one-way 運算。
這個 "setTerm" 操作可以接受新術語表項目訊息的輸入,這些訊息使用一個名為 "newTermValues" 的訊息,此訊息帶有輸入參數 "term" 和 "value"。不過,沒有為這個操作定義任何輸出。
Request-Response 動作
一個 request-response 運算的範例:
<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>
# <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>
在這個範例中,連接埠 "glossaryTerms" 定義了一個名為 "getTerm" 的 request-response 操作。
"getTerm" 操作會要求一個名為"getTermRequest" 的輸入訊息,此訊息帶有一個名為"term" 的參數,並將傳回一個名為"getTermResponse" 的輸出訊息,此訊息帶有一個名為"value" 的參數。