GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  WEBSERVICE::SIMPLE (3)

.ds Aq ’

NAME

WebService::Simple - Simple Interface To Web Services APIs

CONTENTS

SYNOPSIS



  use WebService::Simple;

  # Simple use case
  my $flickr = WebService::Simple->new(
    base_url => "http://api.flickr.com/services/rest/",
    param    => { api_key => "your_api_key", }
  );

  # send GET request to
  # http://api.flickr.com/service/rest/?api_key=your_api_key&method=flickr.test.echo&name=value
  $flickr->get( { method => "flickr.test.echo", name => "value" } );

  # send GET request to
  # http://api.flickr.com/service/rest/extra/path?api_key=your_api_key&method=flickr.test.echo&name=value
  $flickr->get( "extra/path",
    { method => "flickr.test.echo", name => "value" });



DESCRIPTION

WebService::Simple is a simple class to interact with web services.

It’s basically an LWP::UserAgent that remembers recurring API URLs and parameters, plus sugar to parse the results.

METHODS

new(%args)


    my $flickr = WebService::Simple->new(
        base_url => "http://api.flickr.com/services/rest/",
        param    => { api_key => "your_api_key", },
        # compression => 0
        # croak       => 0
        # debug       => 1
    );



Create and return a new WebService::Simple object. new Method requires a base_url of Web Service API.

By default, the module calls Carp::croak (dies) on unsuccessful HTTP requests. If you want to change this behaviour, set croak to FALSE and get() or post() will return the HTTP::Response object on success and failure, just like the base LWP::UserAgent.

By default the module will attempt to use HTTP compression if the Compress::Zlib module is available. Pass compress => 0 to ->new() to disable this feature.

If debug is set, the request URL will be dumped via warn() on get or post method calls .

get([$extra_path,] $args)


    my $response =
      $flickr->get( { method => "flickr.test.echo", name => "value" } );



Send GET request, and you can get the WebService::Simple::Response object. If you want to add a path to base URL, use an option parameter.



    my $lingr = WebService::Simple->new(
        base_url => "http://www.lingr.com/",
        param    => { api_key => "your_api_key", format => "xml" }
    );
    my $response = $lingr->get( api/session/create, {} );



post([$extra_path,] $args) Send POST request.
request_url($extra_path, $args) Return request URL.
base_url
basic_params
cache Each request is prepended by an optional cache look-up. If you supply a Cache object to new(), the module will look into the cache first.



  my $cache   = Cache::File->new(
      cache_root      => /tmp/mycache,
      default_expires => 30 min,
  );
 
  my $flickr = WebService::Simple->new(
      base_url => "http://api.flickr.com/services/rest/",
      cache    => $cache,
      param    => { api_key => "your_api_key, }
  );



response_parser See PARSERS below.

SUBCLASSING

For better encapsulation, you can create subclass of WebService::Simple to customize the behavior



  package WebService::Simple::Flickr;
  use base qw(WebService::Simple);
  __PACKAGE__->config(
    base_url => "http://api.flickr.com/services/rest/",
    upload_url => "http://api.flickr.com/services/upload/",
  );

  sub test_echo
  {
    my $self = shift;
    $self->get( { method => "flickr.test.echo", name => "value" } );
  }

  sub upload
  {
    my $self = shift;
    local $self->{base_url} = $self->config->{upload_url};
    $self->post(
      Content_Type => "form-data",
      Content => { title => "title", description => "...", photo => ... },
    );
  }



PARSERS

Web services return their results in various different formats. Or perhaps you require more sophisticated results parsing than what WebService::Simple provides.

WebService::Simple by default uses XML::Simple, but you can easily override that by providing a parser object to the constructor:



  my $service = WebService::Simple->new(
    response_parser => AVeryComplexParser->new,
    ...
  );
  my $response = $service->get( ... );
  my $thing = $response->parse_response;



For example. If you want to set XML::Simple options, use WebService::Simple::Parser::XML::Simple including this module:



  use WebService::Simple;
  use WebService::Simple::Parser::XML::Simple;
  use XML::Simple;
 
  my $xs = XML::Simple->new( KeyAttr => [], ForceArray => [entry] );
  my $service = WebService::Simple->new(
      base_url => "http://gdata.youtube.com/feeds/api/videos",
      param    => { v => 2 },
      response_parser =>
        WebService::Simple::Parser::XML::Simple->new( xs => $xs ),
  );



This allows great flexibility in handling different Web Services

REPOSITORY

https://github.com/yusukebe/WebService-Simple

AUTHOR

Yusuke Wada <yusuke@kamawada.com>

Daisuke Maki <daisuke@endeworks.jp>

Matsuno Tokuhiro

Naoki Tomita (tomi-ru)

COPYRIGHT AND LICENSE

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 WEBSERVICE::SIMPLE (3) 2015-01-17

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.