Header Ads Widget

Ticker

6/recent/ticker-posts

Cómo mejorar la experiencia de la API con hipermedia

 

cómo-mejorar-la-experiencia-api-usando-hipermedia

Una de las mejores formas de mejorar y mantener una base de usuarios de API es mejorando la experiencia del desarrollador. Una forma de hacerlo es mejorando la usabilidad de una API con hipermedia , un método para interactuar con las API. Pero, ¿qué es exactamente el hipermedia, por qué es importante y cómo afectará a un programa API? Siga leyendo para ver por qué la integración y el soporte de hipermedia pueden ser un gran impulso para sus API.

¿Qué es Hypermedia?

texto-hipertexto-multimedia-hipermedia-comparación-API-nórdicas

Click para agrandar

Por definición, el hipermedia es relativamente simple: el hipermedia se deriva del hipertexto , una extensión del texto sin formato que se vincula a determinados recursos. Por ejemplo, cuando navega a una noticia o hace clic en un enlace para descargar un libro electrónico, está haciendo clic en un elemento de hipertexto.

Hipermedia es el siguiente paso en esta progresión, vinculando audio, video, hipervínculos y datos de forma simple en un formato no lineal a otras fuentes de información o datos. Esto está separado de los medios, que es simplemente la forma no interactiva de los hipermedios, y realmente hace que los datos sean extensibles de una manera que de otra manera no se podría lograr.

Para entender la hipermedia, imagine una serie de ciencia ficción exitosa. El texto es simplemente el libro en el que se basa la franquicia. El hipertexto es un conjunto de libros, cada uno de los cuales se lleva entre sí en un esfuerzo por hacer una serie más conectada. Multimedia es esta serie de libros convertidos en películas; entretenido, pero completamente no interactivo. Hypermedia es el videojuego basado en el libro y los medios, que contiene copias de todo el material anterior, enlazando de forma tangible diversas fuentes multimedia para crear una experiencia potente y cohesionada.

En términos de cómo funciona una API, los hipermedia crean vínculos tangibles entre los recursos multimedia y relevantes . En los medios, es posible que vea una imagen o video como un enlace de apoyo a una fuente de hipertexto o texto sin formato. En hipermedia, haría clic en esa imagen o video para navegar a fuentes relevantes adicionales generadas en función del tema en cuestión.

En este tipo de sistema, el material está presente en un sistema con estado, lo que permite el aprendizaje lógico y automático, la publicidad predictiva, la visualización de datos para el usuario y más. Esta extensibilidad es lo que hace que los hipermedia sean tan poderosos.

Lea también: 5 razones por las que los desarrolladores no utilizan su API

¿Cómo afecta la hipermedia a las API?

La hipermedia cambia la relación entre recursos de forma fundamental. No hipermedia crea puntos finales entre recursos en un método uno a uno, es decir, un recurso se vincula a un único recurso estático, que se vincula y, al hacerlo, codifica a los puntos finales para crear una red de recursos. Si bien esto funciona lo suficientemente bien para recursos estáticos que no cambian, no hace nada por el usuario en términos de extensibilidad o descubrimiento .

Ingrese hipermedia. El hipermedia codifica fundamentalmente las relaciones , en lugar de los puntos finales, lo que crea una enorme malla de recursos en red que se pueden aprovechar en relación con la solicitud original. Esto es completamente diferente de la relación singular, "si esto, entonces haz esto" de los medios estándar o las API de hipertexto.

Imagina que vas a conseguir ese libro de franquicia de ciencia ficción mencionado anteriormente. Entras en una biblioteca y solicitas el libro específico; el bibliotecario te entrega la copia y tú sigues tu camino. Este es un ejemplo de una API sin soporte hipermedia: obtiene lo que solicitó, y nada más, con una relación uno a uno entre la solicitud y el recurso.

Imagina la misma situación, pero esta vez, el bibliotecario no solo te da la copia del libro que solicitaste, sino que también te brinda sugerencias para otros libros de ese género, números de catálogo de Dewey para otros libros de la serie, un libro que brinda información sobre el autor, e imágenes del autor.

Ese es un ejemplo de hipermedia . Las API de hipermedia devuelven resultados en función de su relación con el recurso original en lugar de un enlace simple, único y directo a dicho recurso. Un beneficio adicional de este enfoque es el hecho de que varios microservicios pequeños, la columna vertebral de muchas API , se pueden vincular en una única API unificada, ya que la codificación relacional puede admitir múltiples consultas y funciones diferentes con mucha menos sobrecarga que las API codificadas estáticas tradicionales. .

Para obtener más información sobre la implementación de hipermedia, consulte nuestra lista de tipos de hipermedia para API web (HAL, Siren, Collection + json)

¿Por qué Hypermedia?

Hypermedia es increíblemente poderoso. Sin embargo, uno de sus principales puntos de venta es a menudo la razón por la que se ignora el hipermedia: para muchos, un sistema de este tipo parece demasiado detallado y demasiado complejo. ¿Por qué usarlo todo, en lugar de codificar una compleja malla interna de puntos finales?

Para explicar por qué, considere el desarrollo de una API de servicio de música . Nuestro objetivo es simple: desarrollar una API de servicio de música que proporcione datos sobre bandas relevantes, incluidas descripciones de música, la capacidad de buscar artistas relacionados, la capacidad de comprar y descargar música y la capacidad de compartir enlaces en sitios de redes sociales.

La cuestión es, por supuesto, cómo queremos hacer esto. Por un lado, podríamos crear muy fácilmente un punto final hardcore directo en nuestro código, llamando directamente a una URL específica para una llamada muy específica. Esto ciertamente nos daría lo que queremos, pero solo de una manera muy limitada.

Sin embargo, si codificamos esto como una relación con argumentos adicionales, podemos invocar una variedad de datos con una simple solicitud:

{
    "@context": {
        "name": "https://music.org/name",
        "alternateName": "https://music.org/alternateName",
        "image": {
            "@id": "https://music.org/image",
            "@type": "@id"
        },
        "related": {
            "@container": "@set"
         }
    },
    "@id": "https://music.org/player/Suiyoubi_no_Campanella",
    "playerId": "1234567890",
    "name": "Suiyoubi_no_Campanella",
    "alternateName": "祝福のカンパネラ",
    "image": "https://music.org/player/Suiyoubi_no_Campanella/avatar.png",
    "related": [ 
        {
            "@id": "https://music.org/player/DAOKA"
        },
        {
            "@id": "https://music.org/player/Kyrary_Pamyu_Pamyu"
        }
    ]
}

La belleza de este tipo de sistema es que las propiedades se pueden organizar de tal manera que se hereden. Si esto simplemente se codificara como un punto difícil sin las "identificaciones" relacionadas adjuntas, simplemente obtendríamos el nombre del artista, un nombre en el idioma alternativo y la imagen del avatar.

Sin embargo, al codificar relacionalmente, cuando aparece este resultado, también podemos codificarlo para presentar las propiedades adicionales como artistas relacionados, es decir, artistas similares a DAOKA, que es similar a Suiyoubi no Campanella, pueden presentarse como algo similar a Suiyoubi. no Campanella. Asimismo, nuestro servicio de música API haría relaciones entre The Beatles y The Who, donde The Who se relaciona tangencialmente con The Beatles a través de su relación con una tercera entidad, The Rolling Stones. Las posibilidades son infinitas.

Esto es lo que hace que los hipermedia sean tan increíblemente poderosos: hace que un sistema evolucione de una relación estática uno a uno y crea un producto verdaderamente dinámico y adaptable .

Además, si observa el ejemplo anterior, notará algo interesante: nuestra convención de nomenclatura fue nuestra elección. El desarrollo de API de hipermedia permite opciones de convención de nomenclatura para URI que son exclusivas de la API; Además, debido a que cambia la forma en que se manejan los datos, cómo se establecen nuevas relaciones entre los datos y permite actualizar los URI que pueden propagarse de manera más efectiva, la codificación relacional establece una API mucho más funcional y útil .

¿La mejor parte de todo esto? Este es un cambio de bajo nivel en el pensamiento y el estilo de codificación. Esto significa que todas las implementaciones de seguridad y analíticas anteriores que los desarrolladores de API han llegado a conocer y aman son compatibles y efectivas; todo lo que tiene que hacer es cambiar su forma de pensar.

Descarga nuestra guía de desarrollo gratuita

Ejemplos populares de API de hipermedia

Podemos ver hipermedia en acción en una variedad de implementaciones de API. Como era de esperar, la mayor parte de estas implementaciones son relacionales en su núcleo.

API de búsqueda familiar

api hipermedia de búsqueda familiar

Una de las API de hipermedia relacional más conocidas y efectivas es FamilySearch . Cuando se trata de bases de datos de genealogía familiar, la formación de vínculos relacionales entre fuentes de datos dispares es el medio más importante y eficaz de generar información a partir de una avalancha de datos que de otro modo no estarían vinculados.

Por ejemplo, supongamos que tiene 100 usuarios que utilizan una API de genealogía. Cada uno de esos 100 geneólogos ha realizado una increíble cantidad de trabajo, pero sin vincular sus datos a otros usuarios y otras fuentes de datos, ese contenido tiene una capacidad de descubrimiento y usabilidad limitada .

Al vincular los datos ya existentes con otros datos relevantes, crea un sistema en el que los datos relevantes no solo están directamente vinculados a cada fuente, sino que los usuarios adicionales pueden descubrirlos de forma innata. Terminas con una especie de "multiplicador de fuerza" para tus usuarios; aunque tu base de usuarios es de 100 investigadores, al vincular material relacional y referencial, terminas con una base de usuarios que simula miles de investigadores.

API Wurl

wurl hypermedia api

Para ver otro ejemplo del poder de los hipermedia, veamos Wurl , un servicio de video utilizado por algunos de los proveedores de medios más grandes del mundo. La API de hipermedia de Wurl maneja una gran cantidad de lo que esperaría que manejara una API de medios clásica: llamar al video cuando se solicite, ajustar la tasa de bits y la resolución, etc.

Sin embargo, lo que lo hace verdaderamente único son las características incluidas en la estructura API clásica. Al integrar la transmisión a pedido con calificación de relevancia, recomendaciones, sistemas de calificación, etc., se crea una comunidad a partir de lo que es fundamentalmente un esfuerzo individual.

Más importante es la forma en que Wurl maneja la transmisión, la participación de los usuarios y la retención. El contenido en Wurl se transmite desde un grupo de proveedores de medios, es decir, el contenido no está centralizado, sino que se distribuye desde varios servidores. Debido a esto, la transmisión se extrae de la mejor ruta posible dadas las suscripciones que el usuario tiene activas. Y debido a que los datos están codificados de manera relacional , se pueden mostrar títulos relevantes, lo que genera compras cruzadas, publicidad y más, todo lo cual sería difícil en un sistema estático.

API de ruta elástica

api hipermedia de búsqueda elástica

Finalmente, echemos un vistazo a Elastic Path . Elastic Path es única como API de comercio electrónico en el sentido de que se centra menos en nuevas compras y más en la retención de compras anteriores a través del descubrimiento de clientes, análisis de comportamiento y análisis de consumo. Al rastrear el comportamiento de los compradores y adjuntar datos relevantes a los resultados, aquellos que utilizan Elastic Path obtienen una mejor perspectiva de sus clientes y nuevas oportunidades de ventas. En el espacio de API, la analítica es el rey , y tener un sistema de este tipo en su lugar hace que el potencial de crecimiento empresarial sea enormemente enorme.

Implementación de hipermedia

Cuando se trata de implementar hipermedia en una API, los desarrolladores modernos tienen el mundo al alcance de la mano. La industria ha invertido mucho tiempo, esfuerzo y dinero en el desarrollo de tipos de hipermedia y, en consecuencia, existe una amplia gama de tipos de medios para elegir.

Si bien un enfoque basado en estándares es el que cubriremos aquí, el desarrollo del propio manejo de tipos de hipermedia es completamente posible dados los juegos de herramientas y lenguajes ricos en características de la industria API moderna.

Sin embargo, dado el tiempo y los gastos necesarios, un enfoque basado en estándares suele ser el mejor enfoque que puede emprender un desarrollador. Los tipos de medios como HAL, Collection + JSON y Atom / AtomPub admiten una amplia gama de funcionalidades y en paquetes ordenados para arrancar.

Por ejemplo, Atom / AtomPub se puede integrar fácilmente para admitir recursos relacionales con una simple entrada:



	
	urn:uuid:4786d496-4b39-4ab0-ba0d-45b6628e676a
	
	   Kristopher Sandoval
	



	
																							


Esta entrada simple establece un vínculo relacional entre la alimentación de átomo y el recurso del que se alimenta, lo que permite a los desarrolladores vincularse a la función de edición sin que se defina por punto final codificado.

Sin embargo, esa es una solución RSS, ¿qué pasa con el manejo de respuestas preformadas? El soporte hipermedia se puede incluir con una clase HAL simple, incorporando y vinculando recursos juntos:

{
 “currentOrder”: 5
 “canceledOrder”: 1
 “_links”: {self”: { “href”: “/orderdb?page=5” },next”: { “href”: “/orderdb?page=6” },
    “prev”: { “href”: “/orderdb?page=4” }
  }
}

Además, los tipos emergentes de hipermedia continúan haciendo evolucionar la industria de formas que solo resaltan las fortalezas de los hipermedios, mientras anulan gran parte de sus aspectos negativos. Siren, por ejemplo, ha prestado el apoyo de algunas funciones bastante avanzadas mediante el uso de acciones y campos de acción , eliminando la necesidad de relaciones de enlace codificadas con las solicitudes:

{
  "name": "add-item",
  "title": "Add Item",
  "method": "POST",
  "href": "http://api.x.io/orders/42/items",
  "type": "application/x-www-form-urlencoded",
  "fields": [
	{ "name": "orderNumber", "type": "hidden", "value": "42" },
	{ "name": "productCode", "type": "text" },
	{ "name": "quantity", "type": "number" }
  ]
}

Conclusión: futura ubicuidad hipermedia

El simple hecho del asunto es que los hipermedia son el futuro del espacio API, así como los medios eran el futuro de la World Wide Web y el hipertexto la base de la propia Internet. Si bien la tecnología y las metodologías inherentes a los hipermedia son relativamente nuevas en relación con la industria, están creciendo de manera explosiva.

En términos inequívocos, el hipermedia es una adopción obligada para las API modernas . La codificación relacional, la funcionalidad adicional inherente a las especificaciones de diseño y las oportunidades abiertas por una implementación adecuada hacen que no adoptar hipermedia sea un error costoso.

Publicar un comentario

0 Comentarios