第4回目は,
ツールの紹介(UNIXコマンドラインcURL)
最も簡単にAtomPubを試していただける手段の一つとして,
cURLの使い方簡単にを以下に記述します。
[Usage]:curl [otions...] <url>
表1 cURL options
options | 説明 |
---|---|
-X <command> | HTTPメソッドの設定 例:-X POST) |
--data-binary <data> | POST,PUTするバイナリデータの設定 例:--data-binary @ntt. |
-H | HTTPヘッダーの設定 例:-H Content-Type:image/ |
※1:ファイル名の前に"@"を付けること
cURLによるサービス文書の取得
それでは,
表2 サービス文書URI
サイト名 | サービス文書URI | 備考 |
---|---|---|
APP Test Site | http:// apptestsite/ ;service_ | 【作者】 projects/ |
Perl Atompub test site | http:// service | 【作者】 b/ |
Mixi Station API | 足跡:http:// 新着:http:// フォト:http:// | 【作者】 |
今回は接続先をAtomPubの提唱者であり,
[dsakano@test $ curl -x GET "http://bitworking.org/projects/apptestsite/app.cgi/service/;serv ice_document" <?xml version="1.0" encoding="utf-8"?> <service xmlns="http://www.w3.org/2007/app" xmlns:atom="http://www.w3.org/2005/Atom"> <workspace> <atom:title>AtomPub Test Site</atom:title> /*中略*/ <collection href="media/"> <atom:title>media</atom:title> <accept>*/*</accept> <categories fixed="yes" /> </collection> /*中略*/ </workspace> </service>
レスポンスとして返ってきたサービス文書を見ると,
- "AtomPub Test Site" というワークスペースがあること
- "AtomPub Test Site"の中に"media"というコレクションがあること
- "media"のコレクションURIはhttp://
bitworking. であることorg/ projects/ apptestsite/ app. cgi/ service/ media - "media"に対するPOSTで許可されているのは"*/*"つまり,
全てのファイル形式であること
cURLによるコレクションに新メンバーを追加
どのようなコレクションがあるかわかったところで,
[dsakano@test$ curl -H Content-Type:image/jpeg --data-binary @feed-red.jpg -X POST "http://bitworking.org/projects/apptestsite/app.cgi/service/media" <?xml version="1.0" encoding="utf-8"?> <entry xmlns="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app"> <title /> <link href="http://bitworking.org/news/414/" /> <id>http://bitworking.org/news/414/</id> /*中略*/ <link href="414/" rel="edit" /> <link href="414/;media" rel="edit-media" /> <content src="http://bitworking.org/images/dev/414-.jpe" type="image/jpeg" /> </entry>
cURLによるメンバーの更新,削除
このAtomエントリからは次の情報が得られます。
- エントリーリソース:
http://bitworking. org/ projects/ apptestsite/ app. cgi/ service/ media/ 414/ - メディアリソース:
http://bitworking. org/ projects/ apptestsite/ app. cgi/ service/ media/ 414/;media
上記二つのURIを利用することでこのメンバーを操作することができます。例えば,
このように,