Web Services API
The following operations are supported. For a formal definition, please review the Service Description.
#!/usr/local/bin/perl use SOAP::Lite; my $passcode = "bbf281b6-a9e1-40d8-b598-bab0d080b07c"; my $longURL = "https://go.iu.edu/webservice/v03/GoIUWebService.asmx"; my $tinyURL = "http://dev.go.iu.edu/oj"; my $delURL = "http://dev.go.iu.edu/g8"; our $namespace = "http://dev.go.iu.edu/v03"; our $soap = SOAP::Lite ->uri($namespace) ->proxy('http://dev.go.iu.edu/webservice/v03/GoIUWebService.asmx') ->on_action( sub { join '/', $namespace, $_[1] } ) ->on_fault(\&soap_fault); #print "Encode: " . Encode($passcode, $longURL) . "\n"; #print "Delete: " . Delete($passcode, $delURL) . "\n"; print "Decode: " . Decode($tinyURL . "") . "\n"; #print "Create Date: " . GetCreateDate($tinyURL) . "\n"; #print "Total Hits: " . GetTotalHits($tinyURL) . "\n"; #print "Daily Hits: " . GetDailyHits($tinyURL) . "\n"; #print "Monthly Hits: " . GetMonthlyHits($tinyURL) . "\n"; # # Encode # sub Encode() { ($passcode, $longURL) = @_; my $method = SOAP::Data->name('Encode')->attr({xmlns => $namespace}); my @params = ( SOAP::Data->name(passCode => $passcode), SOAP::Data->name(longURL => $longURL) ); return $soap->call($method => @params)->result; } # # Delete # sub Delete() { ($passcode, $delURL) = @_; my $method = SOAP::Data->name('Delete')->attr({xmlns => $namespace}); my @params = ( SOAP::Data->name(passCode => $passcode), SOAP::Data->name(tinyURL => $delURL) ); return $soap->call($method => @params)->result; } # # Decode # sub Decode() { ($tinyURL) = @_; my $method = SOAP::Data->name('Decode')->attr({xmlns => $namespace}); my @params = ( SOAP::Data->name(tinyURL => $tinyURL) ); return $soap->call($method => @params)->result; } # # GetCreateDate # sub GetCreateDate() { ($tinyURL) = @_; my $method = SOAP::Data->name('GetCreateDate')->attr({xmlns => $namespace}); my @params = ( SOAP::Data->name(tinyURL => $tinyURL) ); return $soap->call($method => @params)->result; } # # GetTotalHits # sub GetTotalHits() { ($tinyURL) = @_; my $method = SOAP::Data->name('GetTotalHits')->attr({xmlns => $namespace}); my @params = ( SOAP::Data->name(tinyURL => $tinyURL) ); return $soap->call($method => @params)->result; } # # GetDailyHits # sub GetDailyHits() { ($tinyURL) = @_; my $method = SOAP::Data->name('GetDailyHits')->attr({xmlns => $namespace}); my @params = ( SOAP::Data->name(tinyURL => $tinyURL) ); return $soap->call($method => @params)->result; } # # GetMonthlyHits # sub GetMonthlyHits() { ($tinyURL) = @_; my $method = SOAP::Data->name('GetMonthlyHits')->attr({xmlns => $namespace}); my @params = ( SOAP::Data->name(tinyURL => $tinyURL) ); return $soap->call($method => @params)->result; } # # Error Handling # sub soap_fault() { my $soap = shift; my $res = shift; if( ref( $res ) ) { chomp( my $err = $res->faultstring ); print "SOAP FAULT: $err"; } else { chomp( my $err = $soap->transport->status ); print "TRANSPORT ERROR: $err"; } return new SOAP::SOM; }