class Hoodoo::Client::Endpoint::HTTP
Talk to a resource that is contacted over HTTP
or HTTPS.
Configured with a Hoodoo::Services::Discovery::ForHTTP
discovery result instance.
Public Instance Methods
create( body_hash, query_hash = nil )
click to toggle source
See Hoodoo::Client::Endpoint#create
.
# File lib/hoodoo/client/endpoint/endpoints/http.rb, line 85 def create( body_hash, query_hash = nil ) d = @description.dup d.action = :create d.body_hash = body_hash d.query_hash = query_hash return do_http( d ) end
delete( ident, query_hash = nil )
click to toggle source
See Hoodoo::Client::Endpoint#delete
.
# File lib/hoodoo/client/endpoint/endpoints/http.rb, line 108 def delete( ident, query_hash = nil ) d = @description.dup d.action = :delete d.ident = ident d.query_hash = query_hash return do_http( d ) end
list( query_hash = nil )
click to toggle source
See Hoodoo::Client::Endpoint#list
.
# File lib/hoodoo/client/endpoint/endpoints/http.rb, line 49 def list( query_hash = nil ) d = @description.dup # This does NOT dup the objects to which @description points d.action = :list d.query_hash = query_hash return inject_enumeration_state( do_http( d ), query_hash ) end
show( ident, query_hash = nil )
click to toggle source
See Hoodoo::Client::Endpoint#show
.
In RESTful HTTP
, ‘GET /resources/#{ident = nil}` gets evaluated as `GET /resources/`, which is of course interpreted as a list
request. Since this is undesirable behaviour, the ident
must be populated, and this will return `404 Not Found` if it is not.
# File lib/hoodoo/client/endpoint/endpoints/http.rb, line 64 def show( ident, query_hash = nil ) if ident.nil? data = response_class_for( :show ).new data.platform_errors.add_error( 'platform.not_found', 'reference' => {entity_name: 'nil identifier given on :show action'} ) return data end d = @description.dup d.action = :show d.ident = ident d.query_hash = query_hash return do_http( d ) end
update( ident, body_hash, query_hash = nil )
click to toggle source
See Hoodoo::Client::Endpoint#update
.
# File lib/hoodoo/client/endpoint/endpoints/http.rb, line 96 def update( ident, body_hash, query_hash = nil ) d = @description.dup d.action = :update d.ident = ident d.body_hash = body_hash d.query_hash = query_hash return do_http( d ) end
Protected Instance Methods
configure_with( resource, version, options )
click to toggle source
See Hoodoo::Client::Endpoint#configure_with
.
Requires a Hoodoo::Services::Discovery::ForHTTP
instance in the discovery_result
field of the options
Hash.
# File lib/hoodoo/client/endpoint/endpoints/http.rb, line 31 def configure_with( resource, version, options ) unless @discovery_result.is_a?( Hoodoo::Services::Discovery::ForHTTP ) raise "Hoodoo::Client::Endpoint::HTTP must be configured with a Hoodoo::Services::Discovery::ForHTTP instance - got '#{ @discovery_result.class.name }'" end @description = Hoodoo::Client::Endpoint::HTTPBased::DescriptionOfRequest.new @description.discovery_result = @discovery_result @description.endpoint_uri = @discovery_result.endpoint_uri @description.proxy_uri = @discovery_result.proxy_uri @description.ca_file = @discovery_result.ca_file @description.http_timeout = @discovery_result.http_timeout @description.http_open_timeout = @discovery_result.http_open_timeout end