8
votes

Création de liens hypermédia dans un type de support personnalisé

Je crée actuellement un ensemble de types de supports personnalisés pour une API reposante (p. Ex. Application / vnd.mycompany.foo + xml) et j'essaie d'identifier les avantages et les inconvénients de deux façons différentes d'exposer des liens hypermédia. < p> Si je considère d'abord ce que les autres types de médias font probablement le meilleur endroit pour démarrer est HTML. HTML me permet de créer des liens tels que: xxx

la chose intéressante ici est que dans certains cas, certaines balises spécifiques ayant un attribut URL, puis il y a la balise de liaison générique qu'utilisant l'attribut REL pour définir la relation.

dans ATompub, il existe également quelques façons que les ressources sont liées ensemble xxx

la question que je demande est quand il a plus de sens à Utilisez un élément de liaison avec une relation, et quand il est plus logique d'ajouter un attribut à un élément existant.

par exemple Les liaisons ATOMBUB auraient pu être effectuées xxx

comme le cas, par écrit cette question, la réponse semble maintenant être évidente. Les liens requis sont exposés comme des attributs et des éléments facultatifs en tant qu'éléments. Cependant, je serais très intéressé à entendre les opinions des autres sur la manière dont ils pensent que les liens devraient être représentés.


1 commentaires

Pas vraiment lié à votre question, mais vous pouvez et devez utiliser l'attribut 'rel' sur les balises d'ancrage aussi.


3 Réponses :


3
votes

Je crois que sémantiquement vos deux exemples d'atome sont équivalents. Il y a quelques endroits dans l'Atom Spec où un lien sans relation n'est considéré comme le lien par défaut (qu'elles appelent sont "Self" ou "Source" Je ne me souviens pas). Personnellement, j'aime le deuxième exemple d'ATMBUB le meilleur, car les éléments de liaison d'une entrée atome (qui est l'objet le plus utilisé lorsqu'il s'agit d'atome en général) définit des éléments de liaison avec des relations et en utilisant le même schéma dans la catégorie, la collecte et l'espace de travail éléments signifie qu'il est plus facile d'analyser sans avoir à connaître beaucoup de conditions particulières.

I Goney d'ignorer le premier exemple HTML, car le HTML d'origine n'était jamais vraiment destiné à la communication de la machine dans la manière dont l'Atom est, et il (IMO) La compréhension sémanentielle HTML est plus difficile et les eaux réduites dans de nombreuses règles spécifiques pour gérer tous les Différent type d'étiquette.


1 commentaires

@Gandalf: Vous mettez votre doigt sur quelque chose de vraiment important ici pour moi. En utilisant le idiome tout au long, vous n'avez pas besoin d'exceptions spéciales et pouvez tout traiter avec le même code: vous n'avez besoin que d'interpréter la relation et le type de contenu, quelque chose qui En théorie pourrait être fait agréable et génériquement.



1
votes

C'est une question intéressante. Une façon de regarder cela serait de différencier des liens dans des liens "informationnels" qui pointent sur des ressources connexes, que le client peut (ou peut ne pas) vouloir suivre pour obtenir plus d'informations (comme le élément in AtMPLB).

D'autre part, les liens "définissent" le protocole, C'est-à-dire que "Guidez" le client à travers la séquence des changements d'état (E.G. Publier / Edit / Supprimer dans le cas d'ATompub, ou commandez / Review / Payer dans un système d'achat) d'une ressource qui composent le protocole réel (comme ).

dans le Article Starbucks , les auteurs élargissent toute l'idée par Définir un schéma (hypothétique) pour des changements d'état. Ils utilisent au lieu d'atom , mais l'idée générale est la même.

Bien sûr, on pourrait affirmer que les tout lien représente un état changement pour le client. Mais je pense que cette distinction a du sens.


0 commentaires

2
votes

Qu'est-ce que j'ai aimé sur XHTML 2 était que Chaque élément pourrait avoir un lien .

Pourquoi ne pas exploiter XLINK pour activer la même funcitonalité? De cette façon, pas besoin de choisir.


1 commentaires

J'ai examiné XLINK dans le passé, mais j'ai été refusé par le fait que le consensus semble être que personne ne soit intéressé à l'utiliser. Cependant, après un deuxième regard, il apparaît que cela traite de tous mes problèmes, alors pourquoi perdre mon temps à réinventer!