La primera cosa que usted debe mirar es el navegador web común. Es el estándar para un cliente que adopta HATEOAS (al menos hasta cierto punto).
Así es como funciona Hypermedia.Es tan simple que es casi doloroso:
- apunta su navegador a
http://pigs-are-cool.org/
- el navegador carga la página HTML, imágenes, CSS y así sucesivamente.
- En este punto, la aplicación (su experiencia de navegación) está en un URI específico.
- El navegador está mostrando el contenido de ese URI
- ves un enlace en la aplicación
- hacer clic en el enlace
- el navegador sigue el enlace
- en este punto, la la aplicación está en un URI diferente
- El navegador muestra el contenido del nuevo URI
Ahora, para una breve explicación de cómo los dos términos se refieren a la experiencia de navegación web:
- Hipermedia = páginas HTML con los enlaces incorporados
- estado de la aplicación = Lo que están viendo en el navegador en cualquier punto en el tiempo.
Así HATEOAS describe realmente lo que sucede en un navegador web cuando se pasa de la página web a la página web:
páginas HTML con enlaces incorporados unidad lo que se ve en el navegador en cualquier punto time
El término HATEOAS es solo una abstracción de esta experiencia de navegación.
Otros ejemplos de aplicaciones de cliente REST incluyen:
- RSS y alimentar a los lectores. Atraviesan los enlaces que les dan los usuarios
- La mayoría de los clientes del blog AtomPub. Necesitan simplemente un URI para un documento de servicios, y a partir de allí descubren dónde subir imágenes y publicaciones de blogs, buscar, etc.
- Probablemente Google Gadgets (y similares), pero no son más que navegadores con una apariencia diferente.
- Los rastreadores web también son clientes RESTful, pero son un nicho de mercado.
Algunas características del software de cliente REST:
- El cliente trabaja con con cualquier servidor, dado que se ceba con un poco de URI y el servidor responde con un resultado esperado (por ejemplo, para un cliente de blog de átomo , un documento de servicios de Atom).
- El cliente no sabe nada sobre cómo el servidor diseña sus URI distintas de lo que puede averiguar en tiempo de ejecución
- El cliente sabe lo suficiente como tipos de medios y rel de entender lo que el servidor está diciendo (por ejemplo, Atom o RSS)
- El cliente usa enlaces incrustados para buscar otros recursos; algunos de forma automática (como
<img src=
) algunos de forma manual (como <a href=
).
Muy a menudo son manejadas por un usuario y pueden denominarse correctamente "agentes de usuario", excepto, digamos, GoogleBot.
Buena pregunta. Tampoco he encontrado marcos para escribir clientes RESTful: IE aquellos que pueden reaccionar dinámicamente siguiendo el principio HATEOAS. Es una pena porque esta idea es un principio del REST, pero la falta de apoyo formal, así como una gran cantidad de malentendidos sobre el REST en general, hace que la comunidad se vea fragmentada. – jkp
@DawidFerenczy está fuera de tema por las mismas razones que aquí. Por favor, abstente de recomendar sitios con los que no estés familiarizado. Lectura recomendada: ** [¿Qué pasa en Ingeniería de Software (anteriormente conocido como Programadores)? Una guía para Stack Overflow] (https://softwareengineering.meta.stackexchange.com/q/7182/31260) ** – gnat