TOPシステム開発> AtomPPをPerlから使う




まるごとPerl!
PerlでWeb APIを使いたおす

第5回:AtomPP を利用したWeb API
著者:水野 貴明   2006/10/12
1   2  次のページ
AtomPPをPerlから使う

   それでは実際にAtomPPを利用したプログラムを書いてみることにしましょう。PerlにはXML::AtomというAtomPPやAtom Feedを扱うモジュールがあるので、こちらを利用します。

   題材としては、はてなブックマーク(注3)を利用してみます。はてなブックマークはソーシャルブックマークサービスで、ブックマークの登録や取得、編集をAtomPPで行うことができます。

   今回は自分のブックマークに新規のエントリを登録するプログラムを書いてみました(リスト18)。

リスト18:はてなブックマークにポストする
#!/usr/bin/perl
use strict;
use warnings;
use XML::Atom::Client;
use XML::Atom::Entry;
use XML::Atom::Link;

my $api = XML::Atom::Client->new;
$api->username('ユーザー名');
$api->password('パスワード');

my $collection_uri = 'http://b.hatena.ne.jp/atom/post';
my $uri = '登録するエントリのURI';
my $comment = 'コメント';

my $link = XML::Atom::Link->new;
$link->type('text/html');
$link->rel('related');
$link->href($uri);
my $entry = XML::Atom::Entry->new;
$entry->add_link($link);
$entry->add(undef,'summary',$comment,{type => 'text/plain'});
my $member_uri = $api->createEntry($collection_uri, $entry);

my $posted_entry = $api->getEntry($member_uri);
print $posted_entry->as_xml;

   処理としては簡単で、XML::Atom::Entryのインスタンスとして登録情報を作成し、それをXML::Atom::Clientを使って登録(新規エントリの作成)しているだけです。はてなブックマークのAPIでは、登録するエントリのURIはlink要素として指定するので、XML::Atom::Entryを使って生成し、それをエントリオブジェクトに加えています。コメントはsummary要素として渡します。

   実際に追加する作業は、XML::Atom::ClientクラスのcreateEntryメソッドに追加先のCollectionのURI(PostURI)とエントリを渡せば完了です。登録の際に送られるEntryのデータは次ページのリスト19のようなものです。

リスト19:POSTされるエントリ情報
POSTされるエントリ情報
(画像をクリックすると別ウィンドウに拡大図を表示します)

   エントリを追加すると、レスポンスとして、追加されたMemberのURIが返されます。そこで、今度はそのURIに対してGETメソッドでアクセスして(getEntryを利用)、エントリの内容を取得します。内容はXML::Atom::Entryとして返されるので、最後にそれをXMLのまま表示しています。その内容は、次ページのリスト20のようなものになっているはずです。

リスト20:取得したエントリ情報
取得したエントリ情報
(画像をクリックすると別ウィンドウに拡大図を表示します)

   ちなみに、はてなブックマークではユーザー認証にWSSE認証という仕組みを利用していますが、XML::Atomにはその仕組みが用意されているので、特に気にすることなく利用できます。

   はてなブックマークのAtomPP APIの仕様については以下のドキュメントを参照してください。


1   2  次のページ

書籍紹介
まるごとPerl! Vol.1

まるごとPerl! Vol.1 PerlでWeb2.0をプログラミングするための最新テクニックを徹底解説!
「Web2.0時代のPerlプログラミング」を徹底解説! 本書では、Webアプリケーションを迅速に開発するためのフレームワークから、Web APIやJSON、RSS、AjaxでWebを自在にRemixするテクニックまで、新時代のPerlの開発技を紹介します。モジュールや文字コードの扱いといった基礎も解説。また、人気サービスの「はてなブックマーク」と「livedoor Reader」の中身を開発者が見せます。来るべきPerl 6も予習できます。PerlでWebを2倍楽しもう!

発売日:2006/08/25発売
定価:\1,995(本体 \1,900+税)
水野 貴明
著者プロフィール
水野 貴明
1973年東京生まれ。エンジニア兼技術系ライター。株式会社はてな勤務。近著に「俺流Amazonの作り方」(アスキー)、「詳解RSS〜RSSを利用したサービスの理論と実践」(ディー・アート)など。趣味はラテン音楽と海外旅行と神輿。現在、家を荒らしまわるネズミの被害に頭を悩ませている。


この記事の評価をお聞かせください
ボタンをクリックしますとウインドウが開きます。
ご意見、ご要望にお応えします! インプレスIT INSIDE

INDEX
第5回:AtomPP を利用したWeb API
AtomPPをPerlから使う
  そのほかのWeb API-ECSの場合
PerlでWeb APIを使いたおす
第1回 Web APIの紹介
第2回 XML-RPCを利用したWeb API
第3回 SOAPを利用したWeb API
第4回 アーキテクチャスタイル「REST」とは何か
第5回 AtomPP を利用したWeb API
第6回 JSONとYAML

Think IT 過去人気記事

注目おすすめ情報

Think IT人気ライター BEST 5

IT製品/サービス資料ダウンロード
    おすすめのホワイトペーパー情報を準備中です