The Atom Publishing Protocolは、Web resourceをpublishおよびeditするアプリケーションレベルのプロトコルである。本プロトコルは、HTTPを利用してAtomフォーマットの文書を交換すものであるが、Atomフォーマット自体は、RFC4287 “The Atom Syndication Format”にて定義されており、本文書の範囲外である。
本文書では、このAtom Publication Protocolで利用する文書を説明するのと同時に、Web Resourceのpublishおよびeditをするためのプロトコルを定義している。
文書の構造の定義
2種類のdocumentを定義している。
- Category document: カテゴリのリストを定義。
- Service document: ひとつ以上のCollectionをグルーピングしたWorkspaceのリストを定義
CollectionとはResourceの集合体で、そのFeedには、自身のIRIと、member resourceのmetadataが記述される。
RFC5023のSection 8.2の例の抜粋を参考として下記に記載
<collection href=”http://example.org/blog/pic”>
<atom:title>Pictures<atom:title>
<accept>image/png</accept>
<accept>image/jpeg</accept>
<accept>image/gif</accept>
</collection>
また、collectionの中には、利用可能なcategoryを指定することもできる。カテゴリのリストを直接collectionの中に記述してもよいし、href attributeを利用して別の場所で定義したcollectionを参照してもよい。そのリストは、fixedでも、open setでもよく、指定できる。
Collectionの中に記載されるResourceのことを、Member Resourceと呼ぶが、このMember Resourceには、Entry ResourceとMedia Resourcerという2種類が存在する。
プロトコルの定義
Atom Publishing Protocolは、Member ResourceをHTTPを利用してretrieve、create、edit、removeするプロトコルを定義している。そのそれぞれのケースに応じて、利用するHTTP methodが異なる点には注意が必要。
- retrieveするにはGETを利用
- createするにはPOSTを利用
- editするにはPUTを利用
- removeするにはDELETEを利用
尚、POSTを用いてCollectionにcreate requestをする際のツールとして、Slug headerというものが存在する。本ヘッダを利用すると、本ヘッダ中の情報を活用してMember URIを作成してくれる。