Presentation is loading. Please wait.

Presentation is loading. Please wait.

Wiki と Web サービス API. Wiki と Web サービス API ( 1 )  Web サービス API の流行 Blog が投稿用の Web サービス API を提供 Amazon 、 Google 、 Yahoo などが各種情報 取得のための Web サービス API を提供.

Similar presentations


Presentation on theme: "Wiki と Web サービス API. Wiki と Web サービス API ( 1 )  Web サービス API の流行 Blog が投稿用の Web サービス API を提供 Amazon 、 Google 、 Yahoo などが各種情報 取得のための Web サービス API を提供."— Presentation transcript:

1 Wiki と Web サービス API

2 Wiki と Web サービス API ( 1 )  Web サービス API の流行 Blog が投稿用の Web サービス API を提供 Amazon 、 Google 、 Yahoo などが各種情報 取得のための Web サービス API を提供  最新 Web サービス API エクスプローラ ( ISBN:4-7741-2496-6 )  Google Hacks ( ISBN:4-87311-136-6 )

3 Wiki と Web サービス API ( 2 )  XML-RPC での API 提供( 2002 年頃) Wiki RPC Version 1  JSP Wiki で提案、 twiki 、 MoinMoin 、 ModWiki 、 phpWiki などでも実装される。  参照系の機能が中心、データを base64 エンコード。 Wiki RPC Version 2  JSP Wiki で提案、 MoinMoin 、 FSWiki などで採用。  更新のための putPage などが追加される。  データは基本的に utf-8 、 base64 エンコードはしな い。  強いて言えば Wiki RPC ベースのものが多い。 2002 年頃の議論で終わってしまっているため、あま り利用されてない?

4 Wiki と Web サービス(表 1 ) 表 1 : Wiki RPC で定義されているプロシージャ

5 Wiki と Web サービス(表 2 ) 表 2 : Wiki RPC の実装状況

6 Wiki RPC を使ってみる( 1 )  FSWiki 向けの Wiki RPC の実装 FSWiki まかまか氏が XML for Wiki で公開 XML for Wiki  設置 Sourceforge から wiki3_5_9.zip を取得、展 開 Sourceforge XML for Wiki から wiki_xmlrpc-204.tar.gz を取得し、同ディレクトリに展開

7 Wiki RPC を使ってみる(図 1 ) wiki.cgi (要 Perl パス修正) ( CGI 設置ディレクトリ、要書込み権限) configdatadocslibpluginthemetmplattachbackuppdftemp wiki3_5_9.zip の内容 空フォルダを作成 (1) FS Wiki の設置 wiki_xmlrpc.cgi (要 Perl パス修正) lib Wiki_xmlrpc-204.tar.gz の内容 wikigate.cgi (要 Perl パス修正) (2) Wiki RPC の追加 図 1 : FSWiki と Wiki RPC の設置

8 Wiki RPC を使ってみる( 2 )  Perl の XMLRPC-Lite モジュールでアクセ ス  Wiki ページ一覧とページ情報の取得 wiki.getAllPages と wiki.getPageInfo を使 用 ソースと結果は図 2  Wiki への投稿と、 HTML 形式での取得 wiki.putPage と wiki.getPageHTML を使用 ソースと結果は図 3

9 Wiki RPC を使ってみる(図 2 ) ■ ソース use XMLRPC::Lite; use Data::Dumper; $Data::Dumper::Indent = 0; my $url = 'http://localhost/fswiki/wiki_xmlrpc.cgi'; my $pages = XMLRPC::Lite->proxy( $url )->call('wiki.getAllPages')->result; foreach my $page (@{$pages}) { my $info = XMLRPC::Lite->proxy( $url )->call('wiki.getPageInfo', $page)->result; print Dumper($info), "\n"; } ■ 結果 $VAR1 = {'lastModified' => '20050827T11:59:06','version' => '1','author' => '','name' => 'FrontPage'}; $VAR1 = {'lastModified' => '20050827T11:59:06','version' => '1','author' => '','name' => 'Help'}; $VAR1 = {'lastModified' => '20050827T11:59:06','version' => '1','author' => '','name' => 'Help/FSWiki'}; $VAR1 = {'lastModified' => '20050827T11:59:06','version' => '1','author' => '','name' => 'Help/Hiki'}; $VAR1 = {'lastModified' => '20050827T11:59:06','version' => '1','author' => '','name' => 'Help/YukiWiki'}; 図 2 : Wiki RPC によるページ一覧とページ情報の取得

10 Wiki RPC を使ってみる(図 3 ) ■ ソース use XMLRPC::Lite; use Jcode; my $url = 'http://localhost/fswiki/wiki_xmlrpc.cgi'; my $page = jcode( ' 投稿テスト ' )->utf8; my $text = jcode( utf8; !!! 投稿テスト結果 [XMLRPC for Wiki|http://www.donzoko.net/cgi/fswiki_xmlrpc/] 経由で投稿。 * 投稿できるのか? * 投稿したページを取得できるか? EOF print "[ 投稿結果 ] “, XMLRPC::Lite->proxy( $url )->call('wiki.putPage', $page, $text)->result, "\n"; print "[ 取得結果 ]\n “, XMLRPC::Lite->proxy( $url )->call('wiki.getPageHTML', $page)->result; ■ 結果 [ 投稿結果 ] 1 [ 取得結果 ] 投稿テスト 結果 XMLRPC for Wiki 経由で投稿。 投稿できるのか? 投稿したページを取得できるか? 図 3 : Wiki RPC によるページの投稿と取得

11 Wiki RPC を使ってみる(図 4 ) 図 4 : Wiki RPC で投稿したページ

12 今後の可能性( 1 )  Web サービス API 仕様の方向 Atom API  最新 Web サービス API エクスプローラに  解説 Atom Autodiscovery などより練りこまれた仕組 XML-RPC のアプリケーション / サイトごとに異なる命令 群に対し、 REST の統一的な利用法  Kwiki に Atom API をサポートするプラグイン Wykiwyg を公開した Socialtext が使用しているなど、 Kwiki の動向は無視できなくなる可能性が。 REST  Atom 、 XML を使わないプレインテキストの REST REST Wiki

13 今後の可能性( 2 )  Wiki API が可能にすること Wiki のより自由な活用  Wiki の閲覧、更新を快適にするクライアント  複数の Wiki を横断するめた Wiki アプリケーション  共有ストレージとしての活用  ワークフローツールへの組み込み Wiki のより自由なアーキテクチャ  Wiki エンジンが Wiki ストレージに API でアクセス  Wiki プラグインが Wiki エンジンや Wiki ストレージに API でアクセス  分散 Wiki ストレージ化

14 今後の可能性(図 4 ) 図 4 : Wiki エンジンと Wiki ストレージを切り離した Wiki システム ブラウザアクセス getPaceHTML getPageText Wiki エンジン Wiki ストレージ getPageText 変換 putPageText getPageText

15 今後の可能性(図 5 ) 図 5 :より分散化した Wiki システム Wiki エンジンサーバ Wiki ストレージサーバ Wiki プラグインサーバ Wiki ストレージバックエンド blog エンジンサーバ


Download ppt "Wiki と Web サービス API. Wiki と Web サービス API ( 1 )  Web サービス API の流行 Blog が投稿用の Web サービス API を提供 Amazon 、 Google 、 Yahoo などが各種情報 取得のための Web サービス API を提供."

Similar presentations


Ads by Google