que informatica hipertexto hipermedia ejemplos caracteristicas rest hateoas hypermedia

rest - informatica - ¿Cuál es la importancia del enlace propio en las API de hipermedia?



hipertexto ejemplos yahoo (2)

Cuando se devuelve un recurso, puede que no sea la representación completa. El enlace self debe proporcionar una url para acceder a esa representación completa

p.ej

GET /objects

[ { "name": "tech", "links": [ "rel": "self", "href": "/objects/1" ] }, { "name": "book", "links": [ "rel": "self", "href": "/objects/2" ] } ]

GET /objects/1

{ "name": "tech", "ratio": 1, "precision": 2, "links": [ { "rel": "self", "href": "/objects/1" } ] }

Todos los artículos y libros que leí en REST repiten la importancia de agregar enlaces "self" rel a sus respuestas de hipermedia, pero todos son claros sobre las razones y los casos de uso.

¿Por qué debería agregar un enlace propio y cómo es útil?


La razón principal es que los clientes (e incluso algunos servidores) no almacenan la ubicación de una representación con la representación. Por ejemplo, si wget http://.../foo.json , la representación se guardará en el disco, pero la URI en la que se recuperó no lo estará. Si no hay un enlace "yo" incrustado en la representación, esto causa dos problemas:

  1. Es posible que los enlaces relativos en el documento ya no tengan una base contra la cual resolver, y por lo tanto se "rompan"; y

  2. El cliente no tendrá un concepto integrado de dónde, por ejemplo, PUT el documento a un servidor si lo modifica. Algunos clientes mantienen esta información de forma independiente, pero la mayoría no lo hace.

Es importante comprender que las representaciones pueden tener una vida bastante fuera de la conversación HTTP e incluso pueden transferirse a través de otros protocolos (correo electrónico, FTP, en un libro, etc.). Por lo tanto, un diseñador de tipo de medios experimentado incluirá un enlace "auto".