
RESTful Web APIs
Leonard Richardson, Mike Amundsen, Sam Ruby
- Editorial
- O'Reilly
- Año
- 2013
- Páginas
- ~408
- Nivel
- Básico
De qué trata
Tratado exhaustivo dedicado al diseño de APIs web evolutivas y resilientes al cambio mediante la aplicación rigurosa de hipermedios y perfiles semánticos. Escrito por Leonard Richardson, Mike Amundsen y Sam Ruby (autores y colaboradores del referente *RESTful Web Services*), el texto se dirige a desarrolladores web y arquitectos de software con conocimientos básicos o intermedios sobre el protocolo HTTP y formatos de intercambio de datos que desean superar las limitaciones de las APIs basadas en URLs rígidas y acopladas.
El libro profundiza en la distinción conceptual entre recursos y representaciones, demostrando cómo los enlaces y controles de hipermedios permiten a los clientes descubrir acciones dinámicamente sin codificar rutas estáticas en el cliente. Presenta y compara una amplia variedad de formatos de medios estandarizados (MIME types para hipermedia), entre los que destacan HAL (Hypertext Application Language), Collection+JSON, Siren, HTML con microformatos y AtomPub. Asimismo, enseña a resolver la ambigüedad del significado de los datos mediante perfiles como ALPS (Application-Level Profile Semantics) y XMDP, explora la integración de datos abiertos enlazados a través de JSON-LD y vocabularios web, y examina la extensión de los principios REST a dispositivos con recursos limitados mediante el protocolo CoAP. Las demostraciones prácticas y scripts de soporte se apoyan en HTTP y Node.js.
En su sección de diseños específicos de dominio, los autores implementan el proyecto interactivo «Maze+XML», un servidor y tres clientes desacoplados en Node.js que modelan un juego de exploración de laberintos. A través de este ejercicio, un cliente jugador, un creador de mapas y un lector de puntuaciones interactúan con el laberinto siguiendo únicamente las transiciones de estado expuestas en los enlaces XML del servidor. El libro aporta una comprensión inigualable del principio HATEOAS y del diseño semántico en la Web, aunque su densidad teórica exige concentración y deja de lado temas de desarrollo como frameworks de backend modernos, bases de datos o interfaces de usuario gráficas. Conviene tener familiaridad con peticiones HTTP y JavaScript para comprender el código complementario.
- REST
- HATEOAS
- HAL
- Collection+JSON
- Siren
- ALPS
- JSON-LD
- Hypermedia
- Protocolo CoAP
- Node.js
- Semántica web
¿Cómo enseña?
Teoría + práctica
- ✗ Sin ejercicios
- ✓ Incluye proyectos
Proyectos
Juego de laberinto Maze+XML
Servidor y clientes desacoplados en Node.js que implementan un juego de exploración de laberintos mediante un tipo de medio XML personalizado, guiando las acciones y navegación exclusivamente a través de controles de hipermedia.

