3. Basic OPDS catalog
Atom feeds
Same requirements than an Atom entry
atom:title
atom:author
atom:id
atom:updated
If it’s a publication, the requirement is at least one
acquisition link.
5. Metadata
Atom
DublinCore Terms (dcterms:issued)
Prism (prism:issue)
New attributes in the OPDS namespace
(opds:price, opds:gateway)
6. Link Relations
For feed-level or entry-level links
Give a meaning to what you’re linking to
Different type, different meaning
In OPDS we use:
1. Link relations from the IANA link registry Link header draft
2. Our own link relations (http://opds-spec.org/relation)
8. More Metadata
Support new type of publications
Provide more and better information
… without affecting the user experience on mobile devices
More meaningful links
9. New Features
Comments (implemented on Feedbooks)
Reviews
Annotations
Publishing (implemented on Feedbooks)
OPDS shopping cart
11. Partial & Full Entries
Like in AtomPub, you shouldn’t assume that an entry in a
collection feed is a full entry
A partial entry can link to a full entry
<atom:link rel="alternate" type= "application/atom+xml;type=entry" href=" …" />
Required & Recommended metadata MUST be in partial
You can add anything you want in full entries
12. New Link Relations
Use link relations from the Link Header draft
New features in OPDS: http://opds-spec.org/relation
Create your own: http://mydomain.com/relation
Associate a link with a new type
… or media parameters in a type
13. Use AtomPub !
Don’t limit yourself to GET requests !
CRUD with POST, GET, UPDATE and DELETE
AtomPub = Service Documents, Workspaces and Collections
New link relations: edit, edit-media
15. On Feedbooks
Based on the Atom Threading Extension
Link Relations: replies, in-reply-to
Attributes: thr:count, thr:updated
AtomPub to POST comment (no UPDATE or DELETE)
16. In our entries
Nothing in the partial entry, MUST GET full entry
<atom:link rel="replies" thr:count="2" thr:updated="…" />
thr:count gives the total number of comments
thr:updated is the timestamp for the last update (last comment)
17. Collection feed for
Comments
A comment is a normal Atom entry
atom:author for the user
atom:content for the comment
app:collection to POST content (no service document)
href attribute for the URI
app:accept to list the types (application/atom+xml;type=entry)
18. Best Practices
Don’t create stuff on your own
search for RFCs
read and participate on mailing lists: atom-syntax, atom & opds
Use the IANA link registry and Link Header draft
Use link relations
Metadata not included in the specs MUST be in the full entry