Class: Uddi4r::Client
- Inherits:
-
Object
- Object
- Uddi4r::Client
- Defined in:
- lib/uddi4r/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
-
#delete_binding(args) ⇒ Object
- Delete a binding [Returns] Uddi4r::DispositionReport ==== Simple arguments auth_info
- String, from get_authToken binding_keys
- Array of binding key String, or binding_key
-
String, a binding key ==== Examples.
-
#delete_business(args) ⇒ Object
- Delete a business [Returns] Uddi4r::DispositionReport ==== Simple arguments auth_info
- String, from get_authToken business_keys
- Array of binding key String, or business_key
-
String, a business key ==== Examples.
-
#delete_service(args) ⇒ Object
- Delete a service [Returns] Uddi4r::DispositionReport ==== Simple arguments auth_info
- String, from get_authToken service_keys
- Array of binding key String, or service_key
-
String, a service key ==== Examples.
-
#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_authToken(args) ⇒ Object
Get an authorization token for use with the publishing API.
-
#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.
-
#save_binding(args) ⇒ Object
- Save or modify a binding [Returns] Uddi4r::BindingDetail ==== Simple arguments auth_info
- String, from get_authToken binding_entity
-
the new binding ==== Examples.
-
#save_business(args) ⇒ Object
- Save or modify a business [Returns] Uddi4r::BusinessDetail ==== Simple arguments auth_info
- String, from get_authToken business_entity
-
BusinessEntity, the new business service ==== Examples.
-
#save_service(args) ⇒ Object
- Save or modify a service [Returns] Uddi4r::ServiceDetail ==== Simple arguments auth_info
- String, from get_authToken business_service
-
BusinessService, the new business service ==== Examples.
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.
49 50 51 52 |
# File 'lib/uddi4r/client.rb', line 49 def initialize(connection, debug=false) @conn = (connection.is_a? Connection) ? connection : Connection.new(connection, "2.0", debug) end |
Instance Method Details
#delete_binding(args) ⇒ Object
Delete a binding
- Returns
-
Uddi4r::DispositionReport
Simple arguments
- auth_info
-
String, from get_authToken
- binding_keys
-
Array of binding key String, or
- binding_key
-
String, a binding key
Examples
164 165 166 167 168 169 170 171 |
# File 'lib/uddi4r/client.rb', line 164 def delete_binding(args) authInfo = required(args, :auth_info, String) binding_keys = args[:binding_key] ? [ args[:binding_key] ] : args[:binding_keys] operation = @conn.create_operation("delete_binding", {}, {'authInfo'=>authInfo}, @conn.create_elements("bindingKey", *binding_keys)) DispositionReport.create_from(@conn.invoke_operation(operation)) end |
#delete_business(args) ⇒ Object
Delete a business
- Returns
-
Uddi4r::DispositionReport
Simple arguments
- auth_info
-
String, from get_authToken
- business_keys
-
Array of binding key String, or
- business_key
-
String, a business key
Examples
130 131 132 133 134 135 136 137 |
# File 'lib/uddi4r/client.rb', line 130 def delete_business(args) authInfo = required(args, :auth_info, String) business_keys = args[:business_key] ? [ args[:business_key] ] : args[:business_keys] operation = @conn.create_operation("delete_business", {}, {'authInfo'=>authInfo}, @conn.create_elements("businessKey", *business_keys)) DispositionReport.create_from(@conn.invoke_operation(operation)) end |
#delete_service(args) ⇒ Object
Delete a service
- Returns
-
Uddi4r::DispositionReport
Simple arguments
- auth_info
-
String, from get_authToken
- service_keys
-
Array of binding key String, or
- service_key
-
String, a service key
Examples
96 97 98 99 100 101 102 103 |
# File 'lib/uddi4r/client.rb', line 96 def delete_service(args) authInfo = required(args, :auth_info, String) service_keys = args[:service_key] ? [ args[:service_key] ] : args[:service_keys] operation = @conn.create_operation("delete_service", {}, {'authInfo'=>authInfo}, @conn.create_elements("serviceKey", *service_keys)) DispositionReport.create_from(@conn.invoke_operation(operation)) end |
#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"))
184 185 186 187 188 189 190 191 192 |
# File 'lib/uddi4r/client.rb', line 184 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"))
209 210 211 212 213 214 215 |
# File 'lib/uddi4r/client.rb', line 209 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")
225 226 227 228 229 230 |
# File 'lib/uddi4r/client.rb', line 225 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")
243 244 245 246 247 248 249 250 251 |
# File 'lib/uddi4r/client.rb', line 243 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")
264 265 266 267 268 269 270 |
# File 'lib/uddi4r/client.rb', line 264 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_authToken(args) ⇒ Object
Get an authorization token for use with the publishing API.
- Returns
-
Uddi4r::AuthToken
Simple arguments
- user_id
-
String, user id
- credentials
-
String, most likely a password
Examples
token = client.get_authToken(:user_id=>"russ", :credentials=>"xyzzy")
63 64 65 66 67 68 69 |
# File 'lib/uddi4r/client.rb', line 63 def get_authToken(args) user_id = required(args, :user_id, String) cred = required(args, :credentials, String) operation = @conn.create_operation('get_authToken', {'userID'=>user_id, 'cred'=>cred}) AuthToken.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()
280 281 282 283 284 285 286 287 |
# File 'lib/uddi4r/client.rb', line 280 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", "..."])
296 297 298 299 300 301 |
# File 'lib/uddi4r/client.rb', line 296 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", "..."])
324 325 326 327 328 329 |
# File 'lib/uddi4r/client.rb', line 324 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", "..."])
310 311 312 313 314 315 |
# File 'lib/uddi4r/client.rb', line 310 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 |
#save_binding(args) ⇒ Object
Save or modify a binding
- Returns
-
Uddi4r::BindingDetail
Simple arguments
- auth_info
-
String, from get_authToken
- binding_entity
-
the new binding
Examples
147 148 149 150 151 152 153 154 |
# File 'lib/uddi4r/client.rb', line 147 def save_binding(args) authInfo = required(args, :auth_info, String) binding = args[:binding] operation = @conn.create_operation('save_binding', {}, {'authInfo'=>authInfo}, binding.to_xml) BindingDetail.create_from(@conn.invoke_operation(operation)) end |
#save_business(args) ⇒ Object
Save or modify a business
- Returns
-
Uddi4r::BusinessDetail
Simple arguments
- auth_info
-
String, from get_authToken
- business_entity
-
BusinessEntity, the new business service
Examples
113 114 115 116 117 118 119 120 |
# File 'lib/uddi4r/client.rb', line 113 def save_business(args) authInfo = required(args, :auth_info, String) business = required(args, :business, BusinessEntity) operation = @conn.create_operation('save_business', {}, {'authInfo'=>authInfo}, business.to_xml) BusinessDetail.create_from(@conn.invoke_operation(operation)) end |
#save_service(args) ⇒ Object
Save or modify a service
- Returns
-
Uddi4r::ServiceDetail
Simple arguments
- auth_info
-
String, from get_authToken
- business_service
-
BusinessService, the new business service
Examples
79 80 81 82 83 84 85 86 |
# File 'lib/uddi4r/client.rb', line 79 def save_service(args) authInfo = required(args, :auth_info, String) service = required(args, :business_service, BusinessService) operation = @conn.create_operation('save_service', {}, {'authInfo'=>authInfo}, service.to_xml) ServiceDetail.create_from(@conn.invoke_operation(operation)) end |