Atom Publishing Protocol (AtomPub)

Web Architecture [./]
Fall 2010 — INFO 290 (CCN 42605)

Erik Wilde, UC Berkeley School of Information
2010-11-02

Creative Commons License [http://creativecommons.org/licenses/by/3.0/]

This work is licensed under a CC
Attribution 3.0 Unported License
[http://creativecommons.org/licenses/by/3.0/]

Contents E. Wilde: Atom Publishing Protocol (AtomPub)

Contents

E. Wilde: Atom Publishing Protocol (AtomPub)

(2) Abstract

The feed formats RSS and Atom are read-only formats, and the Atom Publishing Protocol (AtomPub) builds on top of Atom and provides a protocol for submitting new items to feeds. AtomPub is a good example for a RESTful protocol that exposes all resources through URIs, allows to explore resources by following typed links, and allows interactions with resources based on the uniform interface defined by HTTP.



E. Wilde: Atom Publishing Protocol (AtomPub)

(3) Syndication Format Protocols



E. Wilde: Atom Publishing Protocol (AtomPub)

(4) RESTified Syndication



E. Wilde: Atom Publishing Protocol (AtomPub)

(5) Collections, Members, Entries, Media



E. Wilde: Atom Publishing Protocol (AtomPub)

(6) Protocol Summary

Resource HTTP Method Representation Description
Introspection GET Atom Service Document [Service Documents (1)] Enumerates a set of collections and lists their URIs and other information about the collections
Collection GET Atom Feed A list of member of the collection (this may be a subset of all entries in the collection)
Collection POST Atom Entry Create a new entry in the collection
Member GET Atom Entry Get the Atom Entry
Member PUT Atom Entry Update the Atom Entry
Member DELETE n/a Delete the Atom Entry from the collection


E. Wilde: Atom Publishing Protocol (AtomPub)

(7) Service Documents

Service Documents represent server-defined groups of Collections, and are used to initialize the process of creating and editing resources.


E. Wilde: Atom Publishing Protocol (AtomPub)

(8) Service Document Example

<service xmlns="http://purl.org/atom/app#" xmlns:atom="http://www.w3.org/2005/Atom">
 <workspace>
  <atom:title>Main Site</atom:title>
  <collection href="http://example.org/reilly/main">
   <atom:title>My Blog Entries</atom:title>
   <categories href="http://example.com/cats/forMain.cats"/>
  </collection>
  <collection href="http://example.org/reilly/pic">
   <atom:title>Pictures</atom:title>
   <accept>image/*</accept>
  </collection>
 </workspace>
 <workspace>
  <atom:title>Side Bar Blog</atom:title>
  <collection href="http://example.org/reilly/list">
   <atom:title>Remaindered Links</atom:title>
   <accept>entry</accept>
   <categories fixed="yes">
    <atom:category scheme="http://example.org/extra-cats/" term="joke"/>
    <atom:category scheme="http://example.org/extra-cats/" term="serious"/>
   </categories>
  </collection>
 </workspace>
</service>


E. Wilde: Atom Publishing Protocol (AtomPub)

(9) Category Documents



E. Wilde: Atom Publishing Protocol (AtomPub)

(10) Category Document Example

<app:categories xmlns:app="http://purl.org/atom/app#" xmlns="http://www.w3.org/2005/Atom" fixed="yes" scheme="http://example.com/cats/big3">
 <category term="animal"/>
 <category term="vegetable"/>
 <category term="mineral"/>
</app:categories>


E. Wilde: Atom Publishing Protocol (AtomPub)

(11) Semantic Web Light



2010-11-02 Web Architecture [./]
Fall 2010 — INFO 290 (CCN 42605)