Tworzenie hipermedia odsyłaczy w niestandardowym typie mediów

Obecnie tworzę zestaw niestandardowych typów multimediów dla api RESTful (np. Application / vnd.mycompany.foo + xml) i próbuję zidentyfikować zalety i wady dwóch różnych sposobów ujawniania hipermedia linków.

Jeśli najpierw zastanowię się, jakie inne typy mediów robią, najlepszym miejscem do rozpoczęcia jest HTML. HTML pozwala mi tworzyć linki takie jak:

<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" />

Interesującą rzeczą jest to, że w niektórych przypadkach istnieją pewne konkretne znaczniki, które mają atrybut url, a następnie istnieje ogólny znacznik łącza, który używa atrybutu rel do zdefiniowania relacji.

W AtomPub istnieje również kilka sposobów łączenia zasobów

<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>

Pytanie, które zadaję, dotyczy tego, kiedy bardziej sensowne jest użycie elementu łącza z relacją, a kiedy ma sens dodawanie atrybutu do istniejącego elementu.

na przykład linki AtomPub mogły zostać wykonane

<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"/>

Jak to często bywa, pisząc to pytanie, odpowiedź wydaje się teraz oczywista. Wymagane łącza są wyświetlane jako atrybuty i opcjonalne jako elementy. Byłbym jednak bardzo zainteresowany wysłuchaniem opinii innych osób na temat tego, jak ich zdaniem powinny być reprezentowane linki.

questionAnswers(3)

yourAnswerToTheQuestion