Class: Uddi4r::Client
- Inherits:
-
Object
- Object
- Uddi4r::Client
- Defined in:
- lib/client.rb
Overview
Uddi4r::Client
This is the main class for UDDI inquiry services. It supports all the UDDI inquiry operations specified in UDDI Programmers API V2. For details about the UDDI V2 Specification, visit:
uddi.org/pubs/ProgrammersAPI-V2.04-Published-20020719.htm
Using the client
You can construct the client with a URL string to the UDDI server or a Uddi4r::Connection object. You can then invoke all UDDI inquiry operations by calling the appropriate API methods and passing a hash of arguments.
For example, the following code queires the Microsoft Test UDDI for businesses that have “Microsoft” as part of their names:
client = Uddi4r::Client.new("http://test.uddi.microsoft.com/inquire")
businesses = client.find_business(:name=>"Microsoft")
Simple and advanced arguments
There are two type of arguments that you can pass, simple and advanced. Simple arguments are either String or Array of String, as in the example above. These types of arguments will give you the commonly used inquiry capabilities.
Advanced arguments are Uddi4r::Model objects that provide advanced capabilities such as findQualifiers, tModelBags, categoryBags, etc. See the specficiation for details.
Following example uses a findQualifer to add case-sensitivity to the previous example:
businesses = client.find_business(:name=>"Microsoft",
find_qualifers=>Uddi4r::FindQualifers("caseSensitiveMatch")
Return types
All client API methods return Uddi4r::Model objects.
Not supported
The get_businessDetailExt operation is not supported in this release.
Instance Method Summary collapse
-
#find_binding(args) ⇒ Object
Find binding detail for a given service and tModels.
-
#find_business(args = {}) ⇒ Object
Find businesses matching a given name.
-
#find_related_businesses(args = {}) ⇒ Object
Find businesses related to a given business.
-
#find_service(args = {}) ⇒ Object
Find services for given business key or name.
-
#find_t_model(args = {}) ⇒ Object
Find tModels by name and other qualifiers.
-
#get_binding_detail(args) ⇒ Object
Get binding detail for given binding key.
-
#get_business_detail(args) ⇒ Object
Get business detail for given business key.
-
#get_service_detail(args) ⇒ Object
Get service detail for given service key or keys.
-
#get_t_model_detail(args) ⇒ Object
Get tModel detail for given tModel key or keys.
-
#initialize(connection, debug = false) ⇒ Client
constructor
Create a UDDI inquiry object for invoking inquiry operations.
Constructor Details
#initialize(connection, debug = false) ⇒ Client
Create a UDDI inquiry object for invoking inquiry operations.
- connection
-
String with endpoint or Uddi4r::Connection
- debug
-
Boolean for showing low-level wire communication.
51 52 53 54 |
# File 'lib/client.rb', line 51 def initialize(connection, debug=false) @conn = (connection.is_a? Connection) ? connection : Connection.new(connection, "2.0", debug) end |
Instance Method Details
#find_binding(args) ⇒ Object
Find binding detail for a given service and tModels.
- Returns
-
Uddi4r::BindingDetail
Simple arguments
- service_key
-
String for service. (required)
Advanced arguments
- find_qualifiers
-
Uddi4r::FindQualifiers
- t_model_bag
-
Uddi4r::TModelBag (required)
Example
binding_detil = client.find_binding(:service_key=>"7CEAB5C2-D40E-1E0C-7942-99C64EF3C1ED",
:t_model_bag=>Uddi4r::TModelBag.new("uuid:928A64AB-E277-32FA-0ABA-A28CE9E5E6A5"))
66 67 68 69 70 71 72 73 74 |
# File 'lib/client.rb', line 66 def find_binding(args) service_key = required(args, :service_key, String) args[:t_model_bag] = TModelBag.new(args[:t_model_keys]) if args[:t_model_keys] operation = @conn.create_operation("find_binding", {"serviceKey"=>required(args, :service_key, String)}, args[:find_qualifier], "tModelBag"=>required(args, :t_model_bag, TModelBag) ); BindingDetail.create_from(@conn.invoke_operation(operation)) end |
#find_business(args = {}) ⇒ Object
Find businesses matching a given name.
- Returns
-
Uddi4r::BusinessList
Simple arguments
- name
-
String for full or partial name
Advanced arguments
- find_qualifiers
-
Uddi4r::FindQualifiers
- identifier_bag
-
Uddi4r::IdentifierBag
- category_bag
-
Uddi4r::CategoryBag
- t_model_bag
-
Uddi4r::TModelBag
- discovery_urls
-
Uddi4r::DiscoveryURLs
Examples
businesses = client.find_business(:name=>"Microsoft")
businesses = client.find_business(:name=>"Microsoft",
FindQualifiers.new("exactMatch"))
91 92 93 94 95 96 97 |
# File 'lib/client.rb', line 91 def find_business(args={}) operation = @conn.create_operation("find_business", {}, args[:find_qualifiers], {"name"=>args[:name]}, args[:identifier_bag], args[:category_bag], args[:t_model_bag],args[:discovery_urls]) BusinessList.create_from(@conn.invoke_operation(operation)) end |
#find_related_businesses(args = {}) ⇒ Object
Find businesses related to a given business.
- Returns
-
Uddi4r::RelatedBusinessesList.
Simple arguments
- business_key
-
String for business key (required)
Advanced arguments
- find_qualifiers
-
Uddi4r::FindQualifiers
Example
= client.(:business_key=>"7CEAB5C2-D40E-1E0C-7942-99C64EF3C1ED")
107 108 109 110 111 112 |
# File 'lib/client.rb', line 107 def (args={}) operation = @conn.create_operation("find_relatedBusinesses", {}, args[:find_qualifiers], {"businessKey"=>required(args, :business_key, String)}) RelatedBusinessesList.create_from(@conn.invoke_operation(operation)) end |
#find_service(args = {}) ⇒ Object
Find services for given business key or name.
- Returns
-
Uddi4r::ServiceList
Simple arguments
- business_key
-
String for business key
- names
-
Array of service name String, or
- name
-
String for service name
Advanced arguments
- find_qualifiers
-
Uddi4r::FindQualifiers
- t_model_bag
-
Uddi4r::TModelBag
Example
services = client.find_service(:name=>"Currency Conversion")
125 126 127 128 129 130 131 132 133 |
# File 'lib/client.rb', line 125 def find_service(args={}) # create array if only one given names = args[:name] ? [ args[:name] ] : args[:names] operation = @conn.create_operation("find_service", {:business_key=>args[:business_key]}, @conn.create_elements("name", *names), args[:t_model_bag]) ServiceList.create_from(@conn.invoke_operation(operation)) end |
#find_t_model(args = {}) ⇒ Object
Find tModels by name and other qualifiers. Returns all tModels published on server if no arguments passed.
- Returns
-
Uddi4r::TModelList
Simple arguments
- name
-
String for service name
Advanced arguments
- find_qualifiers
-
Uddi4r::FindQualifiers
- identifier_bag
-
Uddi4r::IdentifierBag
- category_bag
-
Uddi4r::CategoryBag
Example
t_models = client.find_t_model(:name=>"Currency Conversion")
146 147 148 149 150 151 152 |
# File 'lib/client.rb', line 146 def find_t_model(args={}) operation = @conn.create_operation("find_tModel", {}, args[:find_qualifiers], {"name"=>args[:name]}, args[:identifier_bag], args[:category_bag], args[:t_model_bag], args[:discovery_urls]) TModelList.create_from(@conn.invoke_operation(operation)) end |
#get_binding_detail(args) ⇒ Object
Get binding detail for given binding key.
- Returns
-
Uddi4r::BindingDetail
Simple arguments
- binding_keys
-
Array of binding key String, or
- binding_key
-
String for binding key
Example
bd = client.get_binding(:binding_key=>"C7CEAB5C2-D40E-1E0C-7942-99C64EF3C1ED")
url = bd.binding_template.first.access_point()
162 163 164 165 166 167 168 169 |
# File 'lib/client.rb', line 162 def get_binding_detail(args) # create array if only one given args[:binding_keys] = [args[:binding_key]] if args[:binding_key] operation = @conn.create_operation("get_bindingDetail", {}, @conn.create_elements("bindingKey", *required(args, :binding_keys, Array) ) ) BindingDetail.create_from(@conn.invoke_operation(operation)) end |
#get_business_detail(args) ⇒ Object
Get business detail for given business key.
- Returns
-
Uddi4r::BusinessDetail
Simple arguments
- business_keys
-
Array of business key String, or
- business_key
-
String for business key
Example
biz = client.get_business_detail(:business_keys=>["C7CEAB5C2-D40E-1E0C-7942-99C64EF3C1ED", "..."])
178 179 180 181 182 183 |
# File 'lib/client.rb', line 178 def get_business_detail(args) args[:business_keys] = [args[:business_key]] if args[:business_key] operation = @conn.create_operation("get_businessDetail", {}, @conn.create_elements("businessKey", *required(args, :business_keys, Array))) BusinessDetail.create_from(@conn.invoke_operation(operation)) end |
#get_service_detail(args) ⇒ Object
Get service detail for given service key or keys.
- Returns
-
Uddi4r::ServiceDetail
Simple arguments
- service_keys
-
Array of service key String, or
- service_key
-
String for service key
Example
service_details = client.get_service_detail(:service_keys=>["C7CEAB5C2-D40E-1E0C-7942-99C64EF3C1ED", "..."])
206 207 208 209 210 211 |
# File 'lib/client.rb', line 206 def get_service_detail(args) args[:service_keys] = [args[:service_key]] if args[:service_key] operation = @conn.create_operation("get_serviceDetail", {}, @conn.create_elements("serviceKey", *required(args, :service_keys, Array))) ServiceDetail.create_from(@conn.invoke_operation(operation)) end |
#get_t_model_detail(args) ⇒ Object
Get tModel detail for given tModel key or keys.
- Returns
-
Uddi4r::TModelDetail
Simple arguments
- t_model_keys
-
Array of tModel key String, or
- t_model_key
-
String for tModel key
Example
t_models = client.get_t_model_detail(:t_model_keys=>["C7CEAB5C2-D40E-1E0C-7942-99C64EF3C1ED", "..."])
192 193 194 195 196 197 |
# File 'lib/client.rb', line 192 def get_t_model_detail(args) args[:t_model_keys] = [args[:t_model_key]] if args[:t_model_key] operation = @conn.create_operation("get_tModelDetail", {}, @conn.create_elements("tModelKey", *required(args, :t_model_keys, Array))) TModelDetail.create_from(@conn.invoke_operation(operation)) end |