Frage

Ich bin gerade dabei eine Reihe von benutzerdefinierten Medientypen für ein RESTful api (zB application / vnd.mycompany.foo + xml) und ich versuche, die Vor- und Nachteile von zwei verschiedenen Arten des Aussetzens hypermedia Links zu identifizieren.

Wenn ich zuerst überlegen, was andere Medientypen zu tun wahrscheinlich der beste Ort zu beginnen, ist HTML. HTML ermöglicht es mir, Links zu erstellen, wie:

<image src="http://example.com/image.gif"/>
<a href="http://example.com/page.html"/>
<form action="http://example.com/page.html"/>
<link rel="stylesheet" type="text/css" href="theme.css" />

Das Interessante daran ist, dass in einigen Fällen gibt es einige spezifische Tags, die eine URL-Attribut und dann gibt es die allgemeine Link-Tag, der das Attribut rel unter Verwendung der Beziehung zu definieren.

In AtomPub gibt es auch ein paar Möglichkeiten, Ressourcen miteinander verbunden sind,

<collection href="http://example.org/blog/main" >
         <atom:title>My Blog Entries</atom:title>
         <categories href="http://example.com/cats/forMain.cats" />
</collection>

<atom:category scheme="http://example.org/extra-cats/" term="joke" />
<atom:entry>
   <link rel="edit" href="http://example.org/edit/first-post.atom"/>
</atom:entry>

Die Frage, die ich frage, wenn macht es mehr Sinn, ein Verbindungselement mit einer Beziehung zu verwenden, und wann ist es sinnvoller, ein Attribut zu einem vorhandenen Elemente hinzuzufügen.

z. die AtomPub Links hätte getan werden können

<collection>
      <link rel="source" href="http://example.org/blog/main"/>
         <atom:title>My Blog Entries</atom:title>
         <categories>
                <link rel="source" href="http://example.com/cats/forMain.cats"/>
         </categories>
</collection>

<atom:category term="joke">
     <link rel="scheme" href="http://example.org/extra-cats/"/>
<atom:category>
<atom:entry edit="http://example.org/edit/first-post.atom"/>

Wie häufig der Fall ist, diese Frage zu schreiben, scheint die Antwort jetzt klar zu sein. Die erforderlichen Verbindungen werden als Attribute und optionale, als Elemente ausgesetzt. Allerdings würde ich zu hören, die Meinungen anderer Menschen zu sehr daran interessiert, wie sie denken sollen Links dargestellt werden.

War es hilfreich?

Lösung

Was ich möchte über XHTML 2 war, dass jedes Element könnte einen Link haben.

Warum nutzen nicht XLink die gleiche funcitonality aktivieren? Auf diese Weise keine Notwendigkeit zu wählen.

Andere Tipps

Ich glaube, semantisch Ihre zwei Atome Beispiele gleichwertig sind. Es gibt ein paar Orte in der Atom-Spezifikation, wo ein Link ohne Bezug für die Standardverbindung betrachtet wird (ob sie nennen ist „Selbst“ oder „Quelle“ Ich kann mich nicht erinnern). Persönlich mag ich das zweite AtomPub Beispiel der besten, weil die Verbindungselemente in einem Atom Eintrag (das sind die am häufigsten verwendete Objekt ist, wenn sie mit Atom im Allgemeinen zu tun) Verbindungselemente mit Beziehungen definiert, und mit dem gleichen Schema in der Kategorie, Sammlung und Arbeitsbereich Elemente bedeuten, es ist einfacher zu analysieren w / o benötigt eine Menge besonderer Bedingungen zu kennen.

Ich ignoriere Art das erste HTML-Beispiel, weil Original-HTML wurde nie wirklich für Maschine-Kommunikation in der Weise bestimmt Atom ist, und dafür (IMO) semantisch Verständnis HTML ist schwieriger und Wasser bis zu einer Menge von spezifischen Regeln jeder handhaben andere Art von Tag.

Das ist eine interessante Frage. Ein Weg, um es zu betrachten sein würde unterscheiden Links in „Informations“ Links, die zu verwandten Ressourcen verknüpfen, dass der Kunde will (oder auch nicht) können folgen weitere Informationen zu erhalten (Wie das <categories> Element in AtomPub).

Auf der anderen Seite sind die Links, die „definieren“, um das Protokoll, das heißt, dass „Leitfaden“, um den Client durch die Folge von Zustandsänderungen (Z Publish / Ändern / Löschen im Fall von AtomPub oder Bestellung / Review / zahlt in einem Einkaufssystem) eine Ressource, die das eigentliche Protokoll bilden (wie <link rel="edit">).

In der Starbucks Artikel , erweitern die Autoren die ganze Idee von ein (hypothetische) Schema für die Zustandsänderungen zu definieren. Sie sind mit <next rel="schema url" uri="uri for next resource state"> statt Atoms <link rel="..." href="...">, aber die allgemeine Idee ist das gleiche.

Natürlich könnte man argumentieren, dass folgende jeder Link einen Zustand darstellt, ändern für die Kunden. Aber ich denke, diese Unterscheidung sinnvoll ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top