たけまる / Perl - Atompub モジュールの実装について
2007-07-31
_
Perl - Atompub モジュールの実装について [perl][atompub]



Atompub Interop [2007-07-30-1] で miyagawa さんと話して,なんとなく Atompub の実装を進めることになりました.
実装はそれほど手間でもないと思うのですが,名前や API がちょっと悩
ましいです.とりあえず予定を書き留めておいて,しばらくして気が変わっ
てなければこのように実装します.
新たに実装する機能
- Media Resource - Cache (Etag/If-Match) - Media-type/Category Restriction - Slug - Feed Paging - Configuring Collection (YAML)
実装アプローチ
- XML Format に関するモジュールは,XML::Atom の振舞いを変更する
(メソッドを追加したり,上書きする)
- Client/Server は,XML::Atom を継承した新しいモジュールを作る
- Cache の実装はスクラッチで書いたんだけど,適当なモジュールを
使ったほうがいいだろうか?
- Catalyst プラグインも作ってみる (YAML で Collection の設定ができ
るようにする)
新モジュール名
- XML::Atompub::Client - XML::Atompub::Server
Catalyst プラグインの API
- なるべく多くの処理をプログインが行う - プログラマはいくつかのハンドラ関数を書くだけ - Model 操作 (データの出し入れ) - ETag の計算 - Feed Paging? - Perl 以外の実装を参考にすればいいんだろうけど,調べるのがめんど くさい..誰か教えてください.
その他
- エラー処理は,undef を返すのではなく,croak を投げるようにしたい -> Perl らしくないので undef and errstr にする - xBase のある XML をパースできない (segmentation fault) - content->body: 必ず <div> が追加される.UTF-8 flag の扱いに統一 性がない - Client: username がないときは認証ヘッダを付けない - hash を返している部分で呼んでいる関数が,() を返す可能性があると きは ( func || undef ) あるいは scalar func とする
