RSS

Schlagwort-Archive: atom

OData: Antwort in AtomPub, JSON oder XML


Die Rückgabe kann in AtomPub (Atom Publishing Protocol), JSON (JavaScript Object Notation) oder XML (Extensible Markup Langugage) erfolgen.

Atom ist der standardisierte Nachfolger des RSS Formats und nutzt XML als Basis. Es wird genutzt um sog. „Feeds“ zu abonnieren,also elektronische Nachrichten, die mehr oder weniger regelmäßig publiziert werden. Neben den allgemeinen Daten, wie Titel, Link, Autor, enthält die Nachricht ein Element „entry“, in welchem der eigentliche Inhalt abgelegt wird.

Beispiel:

<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Example Feed</title>
  <link href="http://example.org/"/>
  <updated>2003-12-13T18:30:02Z</updated>
  <author>
    <name>John Doe</name>
  </author>
  <id>urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6</id>
  <entry>
    <title>Atom-Powered Robots Run Amok</title>
    <link href="http://example.org/2003/12/13/atom03"/>
    <id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id>
    <updated>2003-12-13T18:30:02Z</updated>
    <summary>Some text.</summary>
  </entry>
</feed>

Innerhalb des „entry“ Tags kann es noch das „content“ Tag geben, das jeden beliebigen MIME Typ als Inhalt erlaubt.

Beispiel:

<entry>
    <title>Atom-Powered Robots Run Amok</title>
    <id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id>
    <updated>2003-12-13T18:30:02Z</updated>
    <content type="xhtml">
     <div xmlns="http://www.w3.org/1999/xhtml">
        Those robots were <i>crazy</i>! ...
     </div>
    </content>
  </entry>

Während Atom lediglich das Lesen von elektronischen Nachrichten erlaubt, kann AtomPub auch neue Daten bzw. Nachrichten erzeugen, bestehende verändern oder löschen. Die Manipulation der Nachrichten erfolgt über die HTTP Operationen GET, POST, PUT und DELETE.

Die OData Spezifikation erweitert AtomPub um ein Datenmodell, d.h. Datentypen und um die Festlegung, wo die Daten zu finden sind. Diese Festlegung erfolgt in der URL.

Die Antwort kann neben Atom/AtomPub oder XML auch in JSON erfolgen, indem im Request als Accept type to “application/json” angegeben wird.

Beispiel:

{
  "Herausgeber": "Xema",
  "Nummer": "1234-5678-9012-3456",
  "Deckung": 2e+6,
  "Währung": "EURO",
  "Inhaber": {
    "Name": "Mustermann",
    "Vorname": "Max",
    "männlich": true,
    "Hobbys": [ "Reiten", "Golfen", "Lesen" ],
    "Alter": 42,
    "Kinder": [],
    "Partner": null
  }
}

JSON wird oft im Zusammenhang mit AJAX verwendet. Der folgende JavaScript Code zeigt, wie auf einem Client mit  XMLHttpRequest ein Response in JSON Format angefordert werden kann:

var my_JSON_object = {};
var http_request = new XMLHttpRequest();
http_request.open("GET", url, true);
http_request.onreadystatechange = function () {
  var done = 4, ok = 200;
  if (http_request.readyState == done && http_request.status == ok) {
       my_JSON_object = JSON.parse(http_request.responseText);
  }
};
http_request.send(null);

JSON entspricht dem JavaScript Format und ist intuitiv einfacher zu lesen als XML. Durch die Tag-Struktur in XML werden Elemente teilweise erheblich aufgebläht. In JSON können die Daten beliebig verschachtelt werden, beispielsweise ist ein Array von Objekten möglich. Zudem gibt es Datentypen. Als Zeichenkodierung benutzt JSON standardmäßig UTF-8; UTF-16 und UTF-32 sind auch möglich. Der MIME-Typ für JSON Dokumente ist „application/json„.

 

Links:

MSDN

RFC 4287

JSON (Wikipedia, OData.org)

OData Org

REW

 
Hinterlasse einen Kommentar

Verfasst von - Dezember 21, 2011 in Formate

 

Schlagwörter: , , ,

 
Erstelle eine Website wie diese mit WordPress.com
Jetzt starten