Date de publication du RFC : Septembre 2007
Auteur(s) du RFC : M. Nottingham
Chemin des normes
Première rédaction de cet article le 8 septembre 2007
Dans la désormais longue série des RFC autour du format Atom, celui-ci spécifie un moyen de récupérer une partie d'un flux de syndication et comment itérer pour avoir le reste du flux.
Atom, normalisé dans le RFC 4287, permet de décrire un flux de syndication, comprenant un certain nombre d'entrées, par exemple des articles d'un blog. Avant ce nouveau RFC, Atom ne permettait pas de récupérer le flux en plusieurs étapes. La plupart des sites Web ne publiaient que les N derniers articles et sans fournir de moyen d'obtenir les autres. Notre RFC change cela : il permet de récupérer des flux par étapes successives (pages feeds) et aussi de récupérer un flux en plusieurs étapes en ayant la garantie que cette récupération inclus toutes les entrées (archived feeds).
Un paged feed est simplement un flux qui contient des liens vers le groupe suivant d'entrées. Par exemple :
<feed xmlns="http://www.w3.org/2005/Atom"> <title>Mon flux à moi</title> <link href="http://example.org/"/> <link rel="self" href="http://example.org/index.atom"/> <link rel="next" href="http://example.org/index.atom?page=2"/> ...
où ce document, index.atom
, contient un
lien de type next
qui mène au document suivant du
flux, index.atom?page=2
.
Ce type next
, ainsi que d'autres types décrits
dans ce RFC comme prev
sont enregistrés dans le
registre IANA des relations.
Un paged feed n'offre pas de garantie de
cohérence. Entre la requête à index.atom
et une
requête ultérieure à index.atom?page=2
, des
entrées ont pu être ajoutées et des entrées figurant dans le premier
document ont pu « migrer » vers le second. Itérer sur les
next
peut donc ne donner qu'une partie de la
collection d'entrées.
Pour avoir un flux
cohérent, il faut utiliser les archived feeds avec
les relations next-archive
et
prev-archive
:
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:fh="http://purl.org/syndication/history/1.0"> <!-- L'espace de noms http://purl.org/syndication/history/1.0 est défini dans ce RFC --> <title>Mon flux à moi</title> <link rel="current" href="http://example.org/index.atom"/> <link rel="self" href="http://example.org/2003/11/index.atom"/> <fh:archive/> <link rel="prev-archive" href="http://example.org/2003/10/index.atom"/> ...
Itérer sur prev-archive
et
next-archive
, si ces relations sont présentes,
est sûr et garantit de ne perdre aucune entrée.
Notre RFC définit également un troisième type de flux, les
complete feeds où la présence de l'élément
<fh:complete/>
garantit que le flux
contient toutes les entrées de la collection.
Désolé, mais ce blog ne met pas encore en œuvre ce RFC et ne fournir donc qu'un flux limité, réduit aux N derniers articles.
Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)
Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)