1 / 15

Wiki と Web サービス API

Wiki と Web サービス API. 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 ). Wiki と Web サービス API ( 2 ). XML-RPC での API 提供( 2002 年頃)

fritz-wells
Download Presentation

Wiki と Web サービス API

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

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の実装 • まかまか氏がXML for Wikiで公開 • 設置 • Sourceforgeからwiki3_5_9.zipを取得、展開 • XML for Wikiからwiki_xmlrpc-204.tar.gzを取得し、同ディレクトリに展開

  7. wiki.cgi(要Perlパス修正) wikigate.cgi(要Perlパス修正) wiki_xmlrpc.cgi(要Perlパス修正) temp pdf lib tmpl theme attach lib docs data config backup plugin Wiki RPCを使ってみる(図1) (1)FS Wikiの設置 (2)Wiki RPCの追加 (CGI設置ディレクトリ、要書込み権限) wiki3_5_9.zipの内容 Wiki_xmlrpc-204.tar.gzの内容 空フォルダを作成 図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( <<EOF )->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 [取得結果] <h2><a name="p0"> <a href="wiki.cgi?page=%C5%EA%B9%C6%A5%C6%A5%B9%A5%C8" class="wikipage">投稿テスト</a>結果</a></h2> <p><a href="http://www.donzoko.net/cgi/fswiki_xmlrpc/">XMLRPC for Wiki</a>経由で投稿。</p><ul> <li> 投稿できるのか? </li> <li> 投稿したページを取得できるか? </li> </ul></ul> 図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) Wikiエンジン Wikiストレージ ブラウザアクセス getPaceHTML getPageText 変換 getPageText getPageText putPageText getPageText 図4:WikiエンジンとWikiストレージを切り離したWikiシステム

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

More Related