REST::Client

| Нет комментариев

В феврале этого года O’Reilly издало книгу «RESTful Web Services Cookbook», и в этой связи есть смысл упомянуть модуль, который появился на спане в начале прошлого года, а сегодня обновился, — REST::Client, который, возможно будет в чем-то удобнее традиционных LWP et. al.

Использование весьма прямолинейно (хотя и не без странностей): названия методов REST::Client совпадают с именами методов HTTP-протокола: GET, PUT, POST, DELETE, OPTIONS, HEAD.

use v5.10;
use strict;

use REST::Client;

my $client = new REST::Client;
$client->OPTIONS('http://onperl.ru/');
say $client->responseCode();
say $client->responseContent();

$client->HEAD('http://onperl.ru/');
say $client->responseCode();

$client->GET('http://onperl.ru/');
say $client->responseCode();

Дополнительно имеется возможность использовать SSL, и, что интересно, создать для полученного XML-ответа XPath-контекст.

Вот пример того, как переписать скрипт, получающий курс для любой пары валют, с использованием модуля REST::Client, и с честным разбором XML.

#!/usr/bin/perl

use v5.10;
use strict;

use REST::Client;

my ($from, $to) = map {uc} @ARGV;
unless ($from) {
    say "Usage: rate FROM [TO]\n";
    exit;
}
$to //= 'RUB';

my $client = new REST::Client;
$client->GET("http://whoyougle.com/money/api/$from/$to");
say $client
    ->responseXpath
    ->findvalue('/currency/rate/value/text()')
;

Проверка:

$ ./rate usd
29.2416

$ ./rate eur usd
1.3393

Комментировать

Страницы

  • img

Об этой записи

Сообщение опубликовано 07.04.2010 22:18. Автор — ash.

Предыдущая запись — Perl 5.12 и \w

Следующая запись — Hello, Perl 5--

Смотрите новые записи на главной странице или загляните в архив, где есть ссылки на все сообщения.