savon-xaop 0.7.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +124 -0
- data/README.textile +75 -0
- data/Rakefile +45 -0
- data/lib/savon/client.rb +84 -0
- data/lib/savon/core_ext/datetime.rb +8 -0
- data/lib/savon/core_ext/hash.rb +78 -0
- data/lib/savon/core_ext/net_http.rb +20 -0
- data/lib/savon/core_ext/object.rb +21 -0
- data/lib/savon/core_ext/string.rb +47 -0
- data/lib/savon/core_ext/symbol.rb +8 -0
- data/lib/savon/core_ext/uri.rb +10 -0
- data/lib/savon/core_ext.rb +3 -0
- data/lib/savon/request.rb +160 -0
- data/lib/savon/response.rb +108 -0
- data/lib/savon/soap.rb +176 -0
- data/lib/savon/wsdl.rb +122 -0
- data/lib/savon/wsse.rb +136 -0
- data/lib/savon.rb +34 -0
- data/spec/basic_spec_helper.rb +12 -0
- data/spec/endpoint_helper.rb +22 -0
- data/spec/fixtures/response/response_fixture.rb +36 -0
- data/spec/fixtures/response/xml/authentication.xml +14 -0
- data/spec/fixtures/response/xml/multi_ref.xml +39 -0
- data/spec/fixtures/response/xml/soap_fault.xml +8 -0
- data/spec/fixtures/response/xml/soap_fault12.xml +18 -0
- data/spec/fixtures/wsdl/wsdl_fixture.rb +37 -0
- data/spec/fixtures/wsdl/xml/authentication.xml +63 -0
- data/spec/fixtures/wsdl/xml/namespaced_actions.xml +307 -0
- data/spec/fixtures/wsdl/xml/no_namespace.xml +115 -0
- data/spec/http_stubs.rb +23 -0
- data/spec/integration/http_basic_auth_spec.rb +16 -0
- data/spec/integration/server.rb +51 -0
- data/spec/savon/client_spec.rb +77 -0
- data/spec/savon/core_ext/datetime_spec.rb +12 -0
- data/spec/savon/core_ext/hash_spec.rb +138 -0
- data/spec/savon/core_ext/net_http_spec.rb +38 -0
- data/spec/savon/core_ext/object_spec.rb +40 -0
- data/spec/savon/core_ext/string_spec.rb +68 -0
- data/spec/savon/core_ext/symbol_spec.rb +11 -0
- data/spec/savon/core_ext/uri_spec.rb +15 -0
- data/spec/savon/request_spec.rb +89 -0
- data/spec/savon/response_spec.rb +137 -0
- data/spec/savon/savon_spec.rb +23 -0
- data/spec/savon/soap_spec.rb +171 -0
- data/spec/savon/wsdl_spec.rb +84 -0
- data/spec/savon/wsse_spec.rb +132 -0
- data/spec/spec_helper.rb +5 -0
- metadata +175 -0
data/lib/savon.rb
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
module Savon
|
2
|
+
|
3
|
+
# Supported SOAP versions.
|
4
|
+
SOAPVersions = [1, 2]
|
5
|
+
|
6
|
+
# SOAP xs:dateTime format.
|
7
|
+
SOAPDateTimeFormat = "%Y-%m-%dT%H:%M:%S"
|
8
|
+
|
9
|
+
# SOAP xs:dateTime Regexp.
|
10
|
+
SOAPDateTimeRegexp = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/
|
11
|
+
|
12
|
+
# Raised in case of an HTTP error.
|
13
|
+
class HTTPError < StandardError; end
|
14
|
+
|
15
|
+
# Raised in case of a SOAP fault.
|
16
|
+
class SOAPFault < StandardError; end
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
# standard libs
|
21
|
+
%w(logger net/https openssl base64 digest/sha1 rexml/document).each do |lib|
|
22
|
+
require lib
|
23
|
+
end
|
24
|
+
|
25
|
+
# gems
|
26
|
+
require "rubygems"
|
27
|
+
%w(builder crack/xml).each do |gem|
|
28
|
+
require gem
|
29
|
+
end
|
30
|
+
|
31
|
+
# core files
|
32
|
+
%w(core_ext wsse soap request response wsdl client).each do |file|
|
33
|
+
require File.dirname(__FILE__) + "/savon/#{file}"
|
34
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
class EndpointHelper
|
2
|
+
|
3
|
+
# Returns the WSDL endpoint for a given +type+ of request.
|
4
|
+
def self.wsdl_endpoint(type = nil)
|
5
|
+
case type
|
6
|
+
when :no_namespace then "http://nons.example.com/Service?wsdl"
|
7
|
+
when :namespaced_actions then "http://nsactions.example.com/Service?wsdl"
|
8
|
+
else soap_endpoint(type)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
# Returns the SOAP endpoint for a given +type+ of request.
|
13
|
+
def self.soap_endpoint(type = nil)
|
14
|
+
case type
|
15
|
+
when :soap_fault then "http://soapfault.example.com/Service?wsdl"
|
16
|
+
when :http_error then "http://httperror.example.com/Service?wsdl"
|
17
|
+
when :invalid then "http://invalid.example.com/Service?wsdl"
|
18
|
+
else "http://example.com/validation/1.0/AuthenticationService"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
class ResponseFixture
|
2
|
+
|
3
|
+
def self.authentication(value = nil)
|
4
|
+
case value
|
5
|
+
when :to_hash
|
6
|
+
{ :success => true,
|
7
|
+
:authentication_value => {
|
8
|
+
:token => "a68d1d6379b62ff339a0e0c69ed4d9cf",
|
9
|
+
:token_hash => "AAAJxA;cIedoT;mY10ExZwG6JuKgp2OYKxow==",
|
10
|
+
:client => "radclient"
|
11
|
+
}
|
12
|
+
}
|
13
|
+
else
|
14
|
+
@@authentication ||= load_fixture :authentication
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.soap_fault
|
19
|
+
@@soap_fault ||= load_fixture :soap_fault
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.soap_fault12
|
23
|
+
@@soap_fault12 ||= load_fixture :soap_fault12
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.multi_ref
|
27
|
+
@@multi_ref ||= load_fixture :multi_ref
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def self.load_fixture(fixture)
|
33
|
+
File.read File.dirname(__FILE__) + "/xml/#{fixture}.xml"
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
|
2
|
+
<soap:Body>
|
3
|
+
<ns2:authenticateResponse xmlns:ns2="http://v1_0.ws.user.example.com">
|
4
|
+
<return>
|
5
|
+
<authenticationValue>
|
6
|
+
<token>a68d1d6379b62ff339a0e0c69ed4d9cf</token>
|
7
|
+
<tokenHash>AAAJxA;cIedoT;mY10ExZwG6JuKgp2OYKxow==</tokenHash>
|
8
|
+
<client>radclient</client>
|
9
|
+
</authenticationValue>
|
10
|
+
<success>true</success>
|
11
|
+
</return>
|
12
|
+
</ns2:authenticateResponse>
|
13
|
+
</soap:Body>
|
14
|
+
</soap:Envelope>
|
@@ -0,0 +1,39 @@
|
|
1
|
+
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
2
|
+
<soapenv:Body>
|
3
|
+
<ns1:listResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://ws.example.com">
|
4
|
+
<listReturn soapenc:arrayType="ns2:HistoryEntry[3]" xsi:type="soapenc:Array" xmlns:ns2="http://ws.example.com/ws/history" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
|
5
|
+
<listReturn href="#id0"/>
|
6
|
+
<listReturn href="#id1"/>
|
7
|
+
<listReturn href="#id2"/>
|
8
|
+
</listReturn>
|
9
|
+
</ns1:listResponse>
|
10
|
+
<multiRef id="id1" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns5:HistoryEntry" xmlns:ns5="http://ws.example.com/ws/history" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
|
11
|
+
<date xsi:type="xsd:dateTime">2009-09-22T13:47:23.000Z</date>
|
12
|
+
<location xsi:type="soapenc:string">Archive</location>
|
13
|
+
<mailId href="#id9"/>
|
14
|
+
<referenceId href="#id8"/>
|
15
|
+
<state xsi:type="soapenc:string">Original</state>
|
16
|
+
<subject xsi:type="soapenc:string">Mail from 09-22-2009: Misc</subject>
|
17
|
+
</multiRef>
|
18
|
+
<multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns6:HistoryEntry" xmlns:ns6="http://ws.example.com/ws/history" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
|
19
|
+
<date xsi:type="xsd:dateTime">2009-04-30T06:38:34.000Z</date>
|
20
|
+
<location xsi:type="soapenc:string">Archive</location>
|
21
|
+
<mailId href="#id10"/>
|
22
|
+
<referenceId href="#id8"/>
|
23
|
+
<state xsi:type="soapenc:string">Original</state>
|
24
|
+
<subject xsi:type="soapenc:string">Mail from 04-29-2009: Technical support</subject>
|
25
|
+
</multiRef>
|
26
|
+
<multiRef id="id2" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns7:HistoryEntry" xmlns:ns7="http://ws.example.com/ws/history" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
|
27
|
+
<date xsi:type="xsd:dateTime">2009-12-18T15:43:21.000Z</date>
|
28
|
+
<location xsi:type="soapenc:string">Archive</location>
|
29
|
+
<mailId href="#id11"/>
|
30
|
+
<referenceId href="#id8"/>
|
31
|
+
<state xsi:type="soapenc:string">Original</state>
|
32
|
+
<subject xsi:type="soapenc:string">Mail from 12-17-2009: Misc</subject>
|
33
|
+
</multiRef>
|
34
|
+
<multiRef id="id11" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="soapenc:int" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">972219</multiRef>
|
35
|
+
<multiRef id="id10" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="soapenc:int" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">708021</multiRef>
|
36
|
+
<multiRef id="id8" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="soapenc:int" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">0</multiRef>
|
37
|
+
<multiRef id="id9" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="soapenc:int" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">855763</multiRef>
|
38
|
+
</soapenv:Body>
|
39
|
+
</soapenv:Envelope>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:m="http://www.example.org/timeouts">
|
2
|
+
<soap:Body>
|
3
|
+
<soap:Fault>
|
4
|
+
<Code>
|
5
|
+
<Value>soap:Sender</Value>
|
6
|
+
<Subcode>
|
7
|
+
<Value>m:MessageTimeout</Value>
|
8
|
+
</Subcode>
|
9
|
+
</Code>
|
10
|
+
<Reason>
|
11
|
+
<Text xml:lang="en">Sender Timeout</Text>
|
12
|
+
</Reason>
|
13
|
+
<Detail>
|
14
|
+
<m:MaxTime>P5M</m:MaxTime>
|
15
|
+
</Detail>
|
16
|
+
</soap:Fault>
|
17
|
+
</soap:Body>
|
18
|
+
</soap:Envelope>
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require "yaml"
|
2
|
+
require "erb"
|
3
|
+
|
4
|
+
class WSDLFixture
|
5
|
+
|
6
|
+
# Returns a WSDL document matching a given +method+ name when called without
|
7
|
+
# arguments. Otherwise returns the expected value for a given +method+ name
|
8
|
+
# matching a fixture.
|
9
|
+
def self.method_missing(method, *args)
|
10
|
+
return wsdl(method) unless args.first
|
11
|
+
expectations[method][args.first]
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
@@expectations = nil
|
17
|
+
|
18
|
+
# Returns a Hash of expected namespace URI's and SOAP operations loaded
|
19
|
+
# from wsdl_fixture.yml.
|
20
|
+
def self.expectations
|
21
|
+
return @@expectations if @@expectations
|
22
|
+
|
23
|
+
file = File.read File.dirname(__FILE__) + "/wsdl_fixture.yml"
|
24
|
+
@@expectations = YAML.load ERB.new(file).result
|
25
|
+
end
|
26
|
+
|
27
|
+
@@wsdl = {}
|
28
|
+
|
29
|
+
# Returns the WSDL document by a given file name.
|
30
|
+
def self.wsdl(wsdl)
|
31
|
+
return @@wsdl[wsdl] if @@wsdl[wsdl]
|
32
|
+
|
33
|
+
file = File.read File.dirname(__FILE__) + "/xml/#{wsdl}.xml"
|
34
|
+
@@wsdl[wsdl] = file
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
<?xml version='1.0' encoding='UTF-8'?><wsdl:definitions name="AuthenticationWebServiceImplService" targetNamespace="http://v1_0.ws.auth.order.example.com/" xmlns:ns1="http://cxf.apache.org/bindings/xformat" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://v1_0.ws.auth.order.example.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
2
|
+
<wsdl:types>
|
3
|
+
<xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://v1_0.ws.auth.order.example.com/" xmlns:tns="http://v1_0.ws.auth.order.example.com/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
4
|
+
<xs:element name="authenticate" type="tns:authenticate" />
|
5
|
+
<xs:element name="authenticateResponse" type="tns:authenticateResponse" />
|
6
|
+
<xs:element name="authenticationResult" type="tns:authenticationResult" />
|
7
|
+
<xs:element name="authenticationValue" type="tns:authenticationValue" />
|
8
|
+
<xs:complexType name="authenticate">
|
9
|
+
<xs:sequence>
|
10
|
+
<xs:element minOccurs="0" name="user" type="xs:string" />
|
11
|
+
<xs:element minOccurs="0" name="password" type="xs:string" />
|
12
|
+
</xs:sequence>
|
13
|
+
</xs:complexType>
|
14
|
+
<xs:complexType name="authenticateResponse">
|
15
|
+
<xs:sequence>
|
16
|
+
<xs:element minOccurs="0" name="return" type="tns:authenticationResult" />
|
17
|
+
</xs:sequence>
|
18
|
+
</xs:complexType>
|
19
|
+
<xs:complexType name="authenticationResult">
|
20
|
+
<xs:sequence>
|
21
|
+
<xs:element minOccurs="0" name="authenticationValue" nillable="true" type="tns:authenticationValue" />
|
22
|
+
<xs:element name="success" type="xs:boolean" />
|
23
|
+
</xs:sequence>
|
24
|
+
</xs:complexType>
|
25
|
+
<xs:complexType name="authenticationValue">
|
26
|
+
<xs:sequence>
|
27
|
+
<xs:element name="token" type="xs:string" />
|
28
|
+
<xs:element name="tokenHash" type="xs:string" />
|
29
|
+
<xs:element name="client" type="xs:string" />
|
30
|
+
</xs:sequence>
|
31
|
+
</xs:complexType>
|
32
|
+
</xs:schema>
|
33
|
+
</wsdl:types>
|
34
|
+
<wsdl:message name="authenticate">
|
35
|
+
<wsdl:part element="tns:authenticate" name="parameters" />
|
36
|
+
</wsdl:message>
|
37
|
+
<wsdl:message name="authenticateResponse">
|
38
|
+
<wsdl:part element="tns:authenticateResponse" name="parameters" />
|
39
|
+
</wsdl:message>
|
40
|
+
<wsdl:portType name="AuthenticationWebService">
|
41
|
+
<wsdl:operation name="authenticate">
|
42
|
+
<wsdl:input message="tns:authenticate" name="authenticate" />
|
43
|
+
<wsdl:output message="tns:authenticateResponse" name="authenticateResponse" />
|
44
|
+
</wsdl:operation>
|
45
|
+
</wsdl:portType>
|
46
|
+
<wsdl:binding name="AuthenticationWebServiceImplServiceSoapBinding" type="tns:AuthenticationWebService">
|
47
|
+
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
|
48
|
+
<wsdl:operation name="authenticate">
|
49
|
+
<soap:operation soapAction="" style="document" />
|
50
|
+
<wsdl:input name="authenticate">
|
51
|
+
<soap:body use="literal" />
|
52
|
+
</wsdl:input>
|
53
|
+
<wsdl:output name="authenticateResponse">
|
54
|
+
<soap:body use="literal" />
|
55
|
+
</wsdl:output>
|
56
|
+
</wsdl:operation>
|
57
|
+
</wsdl:binding>
|
58
|
+
<wsdl:service name="AuthenticationWebServiceImplService">
|
59
|
+
<wsdl:port binding="tns:AuthenticationWebServiceImplServiceSoapBinding" name="AuthenticationWebServiceImplPort">
|
60
|
+
<soap:address location="http://example.com/validation/1.0/AuthenticationService" />
|
61
|
+
</wsdl:port>
|
62
|
+
</wsdl:service>
|
63
|
+
</wsdl:definitions>
|
@@ -0,0 +1,307 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://api.example.com/api/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" targetNamespace="http://api.example.com/api/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
|
3
|
+
<wsdl:types>
|
4
|
+
<s:schema elementFormDefault="qualified" targetNamespace="http://api.example.com/api/">
|
5
|
+
<s:element name="User.GetApiKey">
|
6
|
+
<s:complexType>
|
7
|
+
<s:sequence>
|
8
|
+
<s:element minOccurs="0" maxOccurs="1" name="SiteUrl" type="s:string"/>
|
9
|
+
<s:element minOccurs="0" maxOccurs="1" name="Username" type="s:string"/>
|
10
|
+
<s:element minOccurs="0" maxOccurs="1" name="Password" type="s:string"/>
|
11
|
+
</s:sequence>
|
12
|
+
</s:complexType>
|
13
|
+
</s:element>
|
14
|
+
<s:element name="User.GetApiKeyResponse">
|
15
|
+
<s:complexType>
|
16
|
+
<s:sequence>
|
17
|
+
<s:element minOccurs="0" maxOccurs="1" name="User.GetApiKeyResult"/>
|
18
|
+
</s:sequence>
|
19
|
+
</s:complexType>
|
20
|
+
</s:element>
|
21
|
+
<s:complexType name="Result">
|
22
|
+
<s:sequence>
|
23
|
+
<s:element minOccurs="1" maxOccurs="1" name="Code" type="s:int"/>
|
24
|
+
<s:element minOccurs="0" maxOccurs="1" name="Message" type="s:string"/>
|
25
|
+
</s:sequence>
|
26
|
+
</s:complexType>
|
27
|
+
<s:complexType name="Client">
|
28
|
+
<s:sequence>
|
29
|
+
<s:element minOccurs="0" maxOccurs="1" name="ClientID" type="s:string"/>
|
30
|
+
<s:element minOccurs="0" maxOccurs="1" name="Name" type="s:string"/>
|
31
|
+
</s:sequence>
|
32
|
+
</s:complexType>
|
33
|
+
<s:complexType name="ArrayOfClient">
|
34
|
+
<s:sequence>
|
35
|
+
<s:element minOccurs="0" maxOccurs="unbounded" name="Client" nillable="true" type="tns:Client"/>
|
36
|
+
</s:sequence>
|
37
|
+
</s:complexType>
|
38
|
+
<s:element name="Client.Delete">
|
39
|
+
<s:complexType>
|
40
|
+
<s:sequence>
|
41
|
+
<s:element minOccurs="0" maxOccurs="1" name="ApiKey" type="s:string"/>
|
42
|
+
<s:element minOccurs="0" maxOccurs="1" name="ClientID" type="s:string"/>
|
43
|
+
</s:sequence>
|
44
|
+
</s:complexType>
|
45
|
+
</s:element>
|
46
|
+
<s:element name="Client.DeleteResponse">
|
47
|
+
<s:complexType>
|
48
|
+
<s:sequence>
|
49
|
+
<s:element minOccurs="0" maxOccurs="1" name="Client.DeleteResult" type="tns:Result"/>
|
50
|
+
</s:sequence>
|
51
|
+
</s:complexType>
|
52
|
+
</s:element>
|
53
|
+
<s:element name="User.GetClients">
|
54
|
+
<s:complexType>
|
55
|
+
<s:sequence>
|
56
|
+
<s:element minOccurs="0" maxOccurs="1" name="ApiKey" type="s:string"/>
|
57
|
+
</s:sequence>
|
58
|
+
</s:complexType>
|
59
|
+
</s:element>
|
60
|
+
<s:element name="User.GetClientsResponse">
|
61
|
+
<s:complexType>
|
62
|
+
<s:sequence>
|
63
|
+
<s:element minOccurs="0" maxOccurs="1" name="User.GetClientsResult"/>
|
64
|
+
</s:sequence>
|
65
|
+
</s:complexType>
|
66
|
+
</s:element>
|
67
|
+
<s:element name="anyType" nillable="true"/>
|
68
|
+
<s:element name="Result" nillable="true" type="tns:Result"/>
|
69
|
+
</s:schema>
|
70
|
+
</wsdl:types>
|
71
|
+
<wsdl:message name="User.GetApiKeySoapIn">
|
72
|
+
<wsdl:part name="parameters" element="tns:User.GetApiKey"/>
|
73
|
+
</wsdl:message>
|
74
|
+
<wsdl:message name="User.GetApiKeySoapOut">
|
75
|
+
<wsdl:part name="parameters" element="tns:User.GetApiKeyResponse"/>
|
76
|
+
</wsdl:message>
|
77
|
+
<wsdl:message name="Client.DeleteSoapIn">
|
78
|
+
<wsdl:part name="parameters" element="tns:Client.Delete"/>
|
79
|
+
</wsdl:message>
|
80
|
+
<wsdl:message name="Client.DeleteSoapOut">
|
81
|
+
<wsdl:part name="parameters" element="tns:Client.DeleteResponse"/>
|
82
|
+
</wsdl:message>
|
83
|
+
<wsdl:message name="User.GetClientsSoapIn">
|
84
|
+
<wsdl:part name="parameters" element="tns:User.GetClients"/>
|
85
|
+
</wsdl:message>
|
86
|
+
<wsdl:message name="User.GetClientsSoapOut">
|
87
|
+
<wsdl:part name="parameters" element="tns:User.GetClientsResponse"/>
|
88
|
+
</wsdl:message>
|
89
|
+
<wsdl:message name="User.GetApiKeyHttpGetIn">
|
90
|
+
<wsdl:part name="SiteUrl" type="s:string"/>
|
91
|
+
<wsdl:part name="Username" type="s:string"/>
|
92
|
+
<wsdl:part name="Password" type="s:string"/>
|
93
|
+
</wsdl:message>
|
94
|
+
<wsdl:message name="User.GetApiKeyHttpGetOut">
|
95
|
+
<wsdl:part name="Body" element="tns:anyType"/>
|
96
|
+
</wsdl:message>
|
97
|
+
<wsdl:message name="Client.DeleteHttpGetIn">
|
98
|
+
<wsdl:part name="ApiKey" type="s:string"/>
|
99
|
+
<wsdl:part name="ClientID" type="s:string"/>
|
100
|
+
</wsdl:message>
|
101
|
+
<wsdl:message name="Client.DeleteHttpGetOut">
|
102
|
+
<wsdl:part name="Body" element="tns:Result"/>
|
103
|
+
</wsdl:message>
|
104
|
+
<wsdl:message name="User.GetClientsHttpGetIn">
|
105
|
+
<wsdl:part name="ApiKey" type="s:string"/>
|
106
|
+
</wsdl:message>
|
107
|
+
<wsdl:message name="User.GetClientsHttpGetOut">
|
108
|
+
<wsdl:part name="Body" element="tns:anyType"/>
|
109
|
+
</wsdl:message>
|
110
|
+
<wsdl:message name="User.GetApiKeyHttpPostIn">
|
111
|
+
<wsdl:part name="SiteUrl" type="s:string"/>
|
112
|
+
<wsdl:part name="Username" type="s:string"/>
|
113
|
+
<wsdl:part name="Password" type="s:string"/>
|
114
|
+
</wsdl:message>
|
115
|
+
<wsdl:message name="User.GetApiKeyHttpPostOut">
|
116
|
+
<wsdl:part name="Body" element="tns:anyType"/>
|
117
|
+
</wsdl:message>
|
118
|
+
<wsdl:message name="Client.DeleteHttpPostIn">
|
119
|
+
<wsdl:part name="ApiKey" type="s:string"/>
|
120
|
+
<wsdl:part name="ClientID" type="s:string"/>
|
121
|
+
</wsdl:message>
|
122
|
+
<wsdl:message name="Client.DeleteHttpPostOut">
|
123
|
+
<wsdl:part name="Body" element="tns:Result"/>
|
124
|
+
</wsdl:message>
|
125
|
+
<wsdl:message name="User.GetClientsHttpPostIn">
|
126
|
+
<wsdl:part name="ApiKey" type="s:string"/>
|
127
|
+
</wsdl:message>
|
128
|
+
<wsdl:message name="User.GetClientsHttpPostOut">
|
129
|
+
<wsdl:part name="Body" element="tns:anyType"/>
|
130
|
+
</wsdl:message>
|
131
|
+
<wsdl:portType name="apiSoap">
|
132
|
+
<wsdl:operation name="GetApiKey">
|
133
|
+
<wsdl:input name="User.GetApiKey" message="tns:User.GetApiKeySoapIn"/>
|
134
|
+
<wsdl:output name="User.GetApiKey" message="tns:User.GetApiKeySoapOut"/>
|
135
|
+
</wsdl:operation>
|
136
|
+
<wsdl:operation name="DeleteClient">
|
137
|
+
<wsdl:input name="Client.Delete" message="tns:Client.DeleteSoapIn"/>
|
138
|
+
<wsdl:output name="Client.Delete" message="tns:Client.DeleteSoapOut"/>
|
139
|
+
</wsdl:operation>
|
140
|
+
<wsdl:operation name="GetClients">
|
141
|
+
<wsdl:input name="User.GetClients" message="tns:User.GetClientsSoapIn"/>
|
142
|
+
<wsdl:output name="User.GetClients" message="tns:User.GetClientsSoapOut"/>
|
143
|
+
</wsdl:operation>
|
144
|
+
</wsdl:portType>
|
145
|
+
<wsdl:portType name="apiHttpGet">
|
146
|
+
<wsdl:operation name="GetApiKey">
|
147
|
+
<wsdl:input name="User.GetApiKey" message="tns:User.GetApiKeyHttpGetIn"/>
|
148
|
+
<wsdl:output name="User.GetApiKey" message="tns:User.GetApiKeyHttpGetOut"/>
|
149
|
+
</wsdl:operation>
|
150
|
+
<wsdl:operation name="DeleteClient">
|
151
|
+
<wsdl:input name="Client.Delete" message="tns:Client.DeleteHttpGetIn"/>
|
152
|
+
<wsdl:output name="Client.Delete" message="tns:Client.DeleteHttpGetOut"/>
|
153
|
+
</wsdl:operation>
|
154
|
+
<wsdl:operation name="GetClients">
|
155
|
+
<wsdl:input name="User.GetClients" message="tns:User.GetClientsHttpGetIn"/>
|
156
|
+
<wsdl:output name="User.GetClients" message="tns:User.GetClientsHttpGetOut"/>
|
157
|
+
</wsdl:operation>
|
158
|
+
</wsdl:portType>
|
159
|
+
<wsdl:portType name="apiHttpPost">
|
160
|
+
<wsdl:operation name="GetApiKey">
|
161
|
+
<wsdl:input name="User.GetApiKey" message="tns:User.GetApiKeyHttpPostIn"/>
|
162
|
+
<wsdl:output name="User.GetApiKey" message="tns:User.GetApiKeyHttpPostOut"/>
|
163
|
+
</wsdl:operation>
|
164
|
+
<wsdl:operation name="DeleteClient">
|
165
|
+
<wsdl:input name="Client.Delete" message="tns:Client.DeleteHttpPostIn"/>
|
166
|
+
<wsdl:output name="Client.Delete" message="tns:Client.DeleteHttpPostOut"/>
|
167
|
+
</wsdl:operation>
|
168
|
+
<wsdl:operation name="GetClients">
|
169
|
+
<wsdl:input name="User.GetClients" message="tns:User.GetClientsHttpPostIn"/>
|
170
|
+
<wsdl:output name="User.GetClients" message="tns:User.GetClientsHttpPostOut"/>
|
171
|
+
</wsdl:operation>
|
172
|
+
</wsdl:portType>
|
173
|
+
<wsdl:binding name="apiSoap" type="tns:apiSoap">
|
174
|
+
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
|
175
|
+
<wsdl:operation name="GetApiKey">
|
176
|
+
<soap:operation soapAction="http://api.example.com/api/User.GetApiKey" style="document"/>
|
177
|
+
<wsdl:input name="User.GetApiKey">
|
178
|
+
<soap:body use="literal"/>
|
179
|
+
</wsdl:input>
|
180
|
+
<wsdl:output name="User.GetApiKey">
|
181
|
+
<soap:body use="literal"/>
|
182
|
+
</wsdl:output>
|
183
|
+
</wsdl:operation>
|
184
|
+
<wsdl:operation name="DeleteClient">
|
185
|
+
<soap:operation soapAction="http://api.example.com/api/Client.Delete" style="document"/>
|
186
|
+
<wsdl:input name="Client.Delete">
|
187
|
+
<soap:body use="literal"/>
|
188
|
+
</wsdl:input>
|
189
|
+
<wsdl:output name="Client.Delete">
|
190
|
+
<soap:body use="literal"/>
|
191
|
+
</wsdl:output>
|
192
|
+
</wsdl:operation>
|
193
|
+
<wsdl:operation name="GetClients">
|
194
|
+
<soap:operation soapAction="http://api.example.com/api/User.GetClients" style="document"/>
|
195
|
+
<wsdl:input name="User.GetClients">
|
196
|
+
<soap:body use="literal"/>
|
197
|
+
</wsdl:input>
|
198
|
+
<wsdl:output name="User.GetClients">
|
199
|
+
<soap:body use="literal"/>
|
200
|
+
</wsdl:output>
|
201
|
+
</wsdl:operation>
|
202
|
+
</wsdl:binding>
|
203
|
+
<wsdl:binding name="apiSoap12" type="tns:apiSoap">
|
204
|
+
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http"/>
|
205
|
+
<wsdl:operation name="GetApiKey">
|
206
|
+
<soap12:operation soapAction="http://api.example.com/api/User.GetApiKey" style="document"/>
|
207
|
+
<wsdl:input name="User.GetApiKey">
|
208
|
+
<soap12:body use="literal"/>
|
209
|
+
</wsdl:input>
|
210
|
+
<wsdl:output name="User.GetApiKey">
|
211
|
+
<soap12:body use="literal"/>
|
212
|
+
</wsdl:output>
|
213
|
+
</wsdl:operation>
|
214
|
+
<wsdl:operation name="DeleteClient">
|
215
|
+
<soap12:operation soapAction="http://api.example.com/api/Client.Delete" style="document"/>
|
216
|
+
<wsdl:input name="Client.Delete">
|
217
|
+
<soap12:body use="literal"/>
|
218
|
+
</wsdl:input>
|
219
|
+
<wsdl:output name="Client.Delete">
|
220
|
+
<soap12:body use="literal"/>
|
221
|
+
</wsdl:output>
|
222
|
+
</wsdl:operation>
|
223
|
+
<wsdl:operation name="GetClients">
|
224
|
+
<soap12:operation soapAction="http://api.example.com/api/User.GetClients" style="document"/>
|
225
|
+
<wsdl:input name="User.GetClients">
|
226
|
+
<soap12:body use="literal"/>
|
227
|
+
</wsdl:input>
|
228
|
+
<wsdl:output name="User.GetClients">
|
229
|
+
<soap12:body use="literal"/>
|
230
|
+
</wsdl:output>
|
231
|
+
</wsdl:operation>
|
232
|
+
</wsdl:binding>
|
233
|
+
<wsdl:binding name="apiHttpGet" type="tns:apiHttpGet">
|
234
|
+
<http:binding verb="GET"/>
|
235
|
+
<wsdl:operation name="GetApiKey">
|
236
|
+
<http:operation location="/User.GetApiKey"/>
|
237
|
+
<wsdl:input name="User.GetApiKey">
|
238
|
+
<http:urlEncoded/>
|
239
|
+
</wsdl:input>
|
240
|
+
<wsdl:output name="User.GetApiKey">
|
241
|
+
<mime:mimeXml part="Body"/>
|
242
|
+
</wsdl:output>
|
243
|
+
</wsdl:operation>
|
244
|
+
<wsdl:operation name="DeleteClient">
|
245
|
+
<http:operation location="/Client.Delete"/>
|
246
|
+
<wsdl:input name="Client.Delete">
|
247
|
+
<http:urlEncoded/>
|
248
|
+
</wsdl:input>
|
249
|
+
<wsdl:output name="Client.Delete">
|
250
|
+
<mime:mimeXml part="Body"/>
|
251
|
+
</wsdl:output>
|
252
|
+
</wsdl:operation>
|
253
|
+
<wsdl:operation name="GetClients">
|
254
|
+
<http:operation location="/User.GetClients"/>
|
255
|
+
<wsdl:input name="User.GetClients">
|
256
|
+
<http:urlEncoded/>
|
257
|
+
</wsdl:input>
|
258
|
+
<wsdl:output name="User.GetClients">
|
259
|
+
<mime:mimeXml part="Body"/>
|
260
|
+
</wsdl:output>
|
261
|
+
</wsdl:operation>
|
262
|
+
</wsdl:binding>
|
263
|
+
<wsdl:binding name="apiHttpPost" type="tns:apiHttpPost">
|
264
|
+
<http:binding verb="POST"/>
|
265
|
+
<wsdl:operation name="GetApiKey">
|
266
|
+
<http:operation location="/User.GetApiKey"/>
|
267
|
+
<wsdl:input name="User.GetApiKey">
|
268
|
+
<mime:content type="application/x-www-form-urlencoded"/>
|
269
|
+
</wsdl:input>
|
270
|
+
<wsdl:output name="User.GetApiKey">
|
271
|
+
<mime:mimeXml part="Body"/>
|
272
|
+
</wsdl:output>
|
273
|
+
</wsdl:operation>
|
274
|
+
<wsdl:operation name="DeleteClient">
|
275
|
+
<http:operation location="/Client.Delete"/>
|
276
|
+
<wsdl:input name="Client.Delete">
|
277
|
+
<mime:content type="application/x-www-form-urlencoded"/>
|
278
|
+
</wsdl:input>
|
279
|
+
<wsdl:output name="Client.Delete">
|
280
|
+
<mime:mimeXml part="Body"/>
|
281
|
+
</wsdl:output>
|
282
|
+
</wsdl:operation>
|
283
|
+
<wsdl:operation name="GetClients">
|
284
|
+
<http:operation location="/User.GetClients"/>
|
285
|
+
<wsdl:input name="User.GetClients">
|
286
|
+
<mime:content type="application/x-www-form-urlencoded"/>
|
287
|
+
</wsdl:input>
|
288
|
+
<wsdl:output name="User.GetClients">
|
289
|
+
<mime:mimeXml part="Body"/>
|
290
|
+
</wsdl:output>
|
291
|
+
</wsdl:operation>
|
292
|
+
</wsdl:binding>
|
293
|
+
<wsdl:service name="api">
|
294
|
+
<wsdl:port name="apiSoap" binding="tns:apiSoap">
|
295
|
+
<soap:address location="https://api.example.com/api/api.asmx"/>
|
296
|
+
</wsdl:port>
|
297
|
+
<wsdl:port name="apiSoap12" binding="tns:apiSoap12">
|
298
|
+
<soap12:address location="https://api.example.com/api/api.asmx"/>
|
299
|
+
</wsdl:port>
|
300
|
+
<wsdl:port name="apiHttpGet" binding="tns:apiHttpGet">
|
301
|
+
<http:address location="https://api.example.com/api/api.asmx"/>
|
302
|
+
</wsdl:port>
|
303
|
+
<wsdl:port name="apiHttpPost" binding="tns:apiHttpPost">
|
304
|
+
<http:address location="https://api.example.com/api/api.asmx"/>
|
305
|
+
</wsdl:port>
|
306
|
+
</wsdl:service>
|
307
|
+
</wsdl:definitions>
|