Hlavní navigace

Atom 1.0: protokol

Petr Cimprich 2. 2. 2006

Na formát Atom 1.0 navazuje publikační protokol Atom. Jedná se o obecný aplikační protokol určený k publikování a editaci webových zdrojů. Hlavními standardy, na nichž APP staví, jsou HTTP 1.1 a XML 1.0.

Na formát Atom 1.0 navazuje publikační protokol Atom (Atom Publication Protocol čili APP, dříve též Atom API). Jedná se o obecný aplikační protokol určený k publikování a editaci webových zdrojů. Hlavními standardy, na nichž APP staví, jsouHTTP 1.1 a XML 1.0. Protokol APP je navržen v souladu s architekturou webu, jejíž základní sémantické prvky – URI (případně IRI), zdroj a reprezentaci – doplňuje o dva nové pojmy:

  • Kolekce je zvláštní zdroj obsahující sadu URI svých členů, webových zdrojů. Reprezentací kolekce je dokument ve formátu Atom 1.0.
  • Introspekční dokument je dokument popisující jednu nebo více kolekcí. Každý webový server může mít svůj introspekční dokument. Pro reprezentaci introspekčního dokumentu APP zavádí zvláštní formát.

Některé současné protokoly vytvořené nad HTTP (např. XML-RPC či SOAP) si vystačí s metodou POST, čímž se připravují o důležité výhody webové architektury. Atom 1.0 přirozeným způsobem využívá všechny hlavní metody protokolu HTTP. GET slouží k načtení reprezentace, POSTem se vytváří nový zdroj, PUT aktualizuje existující zdroj a DELETE zdroj odstraňuje.

Každá kolekce smí obsahovat pouze zdroje jednoho typu. Členy mohou být buď položky formátu Atom (textový obsah, HTML či XHTML, typ entry), nebo libovolné samostatné soubory (typ media). Položky prvního typu musí obsahovat element <link href=„URI“ rel=„edit“> s URI, jež slouží k editaci tohoto zdroje. Členové typu media musí obsahovat element <content src="URI"> s odkazem na samotný zdroj pouze pro čtení. Nepovinný element <link href=„URI“ rel=„edit“> může poskytnout další URI pro editaci zdroje.

Možné operace protokolu Atom jsou tyto:

1. Načtení introspekčního dokumentu: GET na URI introspekčního dokumentu. Vrací introspekční dokument, který může obsahovat popis jedné nebo více „pracovních ploch” (workspace). Pracovní plocha je volné seskupení kolekcí; může obsahovat jednu či více kolekcí, přičemž tatáž kolekce se smí vyskytovat ve více pracovních plochách.

<?xml version="1.0" encoding='utf-8'?>
<service xmlns="http://purl.org/atom/app#">
  <workspace title="Main Area" >
    <collection title="Blog Entries"
      href="http://example.org/blog" >

      <member-type>entry</member-type>
      <list-template>http://example.org/blog/{index}</list-template>
    </collection>
    <collection title="Pictures"
      href="http://example.org/pic" >
      <member-type>media</member-type>

      <list-template>http://example.org/pic/{index}</list-template>
    </collection>
  </workspace>
</service> 

2. Načtení seznamu členů kolekce: GET na URI kolekce. Vrací dokument ve formátu Atom 1.0. Zde je příklad kolekce typu  entry.

<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  [...]
  <entry>
    <title>Example entry</title>
    <link href="http://example.org/blog/1" rel="edit"/>

    <id>urn:uuid:1225c695-ffb8-4ebb-aaaa-80da354efa6a</id>
    <updated>2006-01-28T10:30:00Z</updated>
    <summary>A brief description</summary>
    <content type="text" xml:lang="en">

      The full text.
    </content>
  </entry>
  [...]
</feed> 

3. Vytvoření nového zdroje: POST na URI kolekce. Tělo požadavku obsahuje reprezentaci nového člena kolekce. Jméno zdroje je vytvořeno dynamicky s pomocí šablony v elementu list-template v introspekčním dokumentu. Vrací se návratový kód 201 Created a hlavička Location s URI nového zdroje. Nový člen musí být typu ( entry nebo media), který kolekce akceptuje. Zde je příklad těla požadavku přidávajícího do kolekce typu media nový obrázek.

<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom">

  <title>A picture.</title>
  <link rel="edit"
    href="http://example.org/pic/edit/1.png"/>
  <id>urn:uuid:1225c695-cfb8-4ebb-aaaa-568596895695</id>
  <updated>2006-01-28T10:30:00Z</updated>

  <summary>The picture description</summary>
  <content type="image/png"
    src="http://example.org/pic/readonly/1.png"/>
</entry> 

4. Načtení zdroje: GET na URI člena kolekce. Vrací reprezentaci daného zdroje.

5. Aktualizace zdroje: PUT na URI člena kolekce. Tělo požadavku obsahuje aktualizovanou reprezentaci člena kolekce. Při úspěchu vrací návratový kód 200 Ok.

6. Odstranění zdroje: DELETE na URI člena kolekce. Při úspěchu vrací návratový kód 200 Ok.

To je vše, co se dá dělat s protokolem APP. Rozsahem malý protokol se výborně hodí ke psaní a aktualizování novinkových serverů, blogů a podobných webů. Pomocí APP bude možné s minimálním úsilím vytvořit jednoduchý systém pro správu obsahu. Webový server vybavený modulem podporujícím APP a introspekčním dokumentem bude moci být pohodlně aktualizován grafickým klientem APP. Umím si představit řadu případů, kde bych takovou možnost rád využil.

Implementace APP jsou zatím v plenkách; už vzhledem k tomu, že protokol Atom je zatím pouze draft a nelze vyloučit, že se ještě bude měnit. Podle původních plánů měl být protokol APP dokončen a předložen IETF ke schválení koncem roku 2005, ale patří k povaze věcí, že se zpožďují. Současný draft verze 0.7 je platný do června a je pravděpodobné, že by už mohl být nahrazen konečnou verzí. Pak by letošní rok mohl ověřit, do jaké míry se možnosti protokolu Atom shodují s potřebami uživatelů.

Našli jste v článku chybu?

3. 2. 2006 22:41

Pmx (neregistrovaný)
Tento článek se týká protokolu Atom, což je, pokud jsem to správně pochopil, něco úplně jiného než RSS :-)
120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu

DigiZone.cz: ČRo rozšiřuje DAB do Berouna

ČRo rozšiřuje DAB do Berouna

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Vitalia.cz: Tesco: Chudá rodina si koupí levné polské kuře

Tesco: Chudá rodina si koupí levné polské kuře

Vitalia.cz: Říká amoleta - a myslí palačinka

Říká amoleta - a myslí palačinka

Podnikatel.cz: EET: Totálně nezvládli metodologii projektu

EET: Totálně nezvládli metodologii projektu

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

DigiZone.cz: NG natáčí v Praze seriál o Einsteinovi

NG natáčí v Praze seriál o Einsteinovi

Podnikatel.cz: Prodává přes internet. Kdy platí zdravotko?

Prodává přes internet. Kdy platí zdravotko?

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

Podnikatel.cz: Babiše přesvědčila 89letá podnikatelka?!

Babiše přesvědčila 89letá podnikatelka?!

DigiZone.cz: Sony KD-55XD8005 s Android 6.0

Sony KD-55XD8005 s Android 6.0

Vitalia.cz: „Připluly“ z Německa a možná obsahují jed

„Připluly“ z Německa a možná obsahují jed

Podnikatel.cz: Na poslední chvíli šokuje vyjímkami v EET

Na poslední chvíli šokuje vyjímkami v EET

Měšec.cz: Finančním poradcům hrozí vracení provizí

Finančním poradcům hrozí vracení provizí

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“