WebService::DMM 0.08をリリースしました
WebService-DMM-0.08 - DMM webservice module - metacpan.org
修正箇所
- エラーレスポンスが返ってきたときの不備の修正
- 生のレスポンスオブジェクトを返すメソッド(last_response)の追加
前者はエラーが返ってきたときにレスポンスオブジェクトの is_success
メソッドが trueを返してしまう等の問題があったので修正しました。
後者は @tokuhirom氏のこちらの記事で生の
レスポンスオブジェクトを取得できるべきとあったので、そうだなって
ことで修正しました。Clientインスタンスは差し替えできるように
作っていたんですが、不十分でした。
以下のように last_responseメソッドで Furl::Responseインスタンスが
取得できます。
my $dmm = WebService::DMM->new( affiliate_id => $config->{affiliate_id}, api_id => $config->{api_id}, ); my $res = $dmm->search( site => 'DMM.co.jp', %params ); # Furl::Responseインスタンスが取得できる my $raw_response = $dmm->last_response, "\n";
おわりに
DMMのWeb APIに今更気づいたので... - ゆーすけべー日記 v1
と同じことは以下のようにして実現できます。EUC-JPによるエンコーディングや
時間の指定やらはデフォルトである程度してくれます。取得できるパラメータに
ついてはアクセッサがあるので、APIドキュメントを見て、その名前のメソッドを
呼びだせば値は概ね取得できると思います。詳しくはパッケージに
含まれるサンプルプログラムやドキュメントを参照してください。
#!/usr/bin/env perl use strict; use warnings; use utf8; use Config::Pit; use WebService::DMM; binmode STDOUT, ":utf8"; my $config = pit_get('dmm.co.jp', require => { affiliate_id => 'DMM Affiliate ID', api_id => 'DMM API ID', }); my $dmm = WebService::DMM->new( affiliate_id => $config->{affiliate_id}, api_id => $config->{api_id}, ); my $res = $dmm->search( site => 'DMM.co.jp', sort => 'review', service => 'digital', floor => 'videoa', keyword => '成瀬心美', hits => 20, ); my $index = 1; for my $item (@{$res->items}) { printf "[%2d] %s\n", $index, $item->title; $index++; }