stringtranslate.com

Lenguaje de aplicación de hipertexto

El lenguaje de aplicación de hipertexto ( HAL ) es una convención para definir hipermedios como enlaces a recursos externos dentro de código JSON o XML . Está documentado en un borrador de Internet (un "trabajo en progreso"), con la última versión 11 publicada el 10 de octubre de 2023. El estándar se propuso inicialmente en junio de 2012 específicamente para su uso con JSON [1] y desde entonces está disponible en dos variantes, JSON y XML. Los dos tipos MIME asociados son el tipo de medio: application/hal+xml y el tipo de medio: application/hal+json. [2]

HAL se creó para que fuera fácil de usar y de aplicar en distintos dominios , evitando la necesidad de imponer requisitos sobre cómo debe estructurarse el proyecto. Manteniendo este enfoque de impacto mínimo, HAL ha permitido a los desarrolladores crear bibliotecas de uso general que se pueden incorporar fácilmente en cualquier API que utilice HAL. [ cita requerida ]

Las API que adoptan HAL simplifican el uso de bibliotecas de código abierto y permiten interactuar con la API mediante JSON o XML. La alternativa sería tener que desarrollar un formato propietario que, a su vez, obligaría a los desarrolladores a aprender a utilizar otro formato ajeno. [3]

Convención

HAL está estructurado de tal manera que representa elementos basados ​​en dos conceptos: recursos y enlaces. Los recursos consisten en enlaces URI , recursos integrados, sus datos estándar (ya sea JSON o XML) y enlaces que no son URI. Los enlaces tienen un URI de destino, así como el nombre del enlace (denominado "rel"), así como propiedades opcionales diseñadas para tener en cuenta la desaprobación y la negociación de contenido. [3]

Ejemplo

Recursos generales

{ "_links" : { "self" : { "href" : "http://example.com/api/book/hal-cookbook" } }, "id" : "hal-cookbook" , "name" : "Libro de cocina de HAL" }            

Recurso integrado

{ "_links" : { "self" : { "href" : "http://example.com/api/book/hal-cookbook" } }, "_embedded" : { "author" : { "_links" : { "self" : { "href" : "http://example.com/api/author/shahadat" } }, "id" : "shahadat" , "name" : "Shahadat Hossain Khan" , "homepage" : "http://author-example.com" } }, "id" : "hal-cookbook" , "name" : "HAL Cookbook" }                                

Colecciones

{ "_links" : { "self" : { "href" : "http://example.com/api/book/hal-cookbook" }, "next" : { "href" : "http://example.com/api/book/hal-case-study" }, "prev" : { "href" : "http://example.com/api/book/json-and-beyond" }, "first" : { "href" : "http://example.com/api/book/catalog" }, "last" : { "href" : "http://example.com/api/book/upcoming-books" } }, "_embedded" : { "author" : { "_links" : { "self" : { "href" : "http://example.com/api/author/shahadat" } }, "id" : "shahadat" , "nombre" : "Shahadat Hossain Khan" , "página de inicio" : "http://author-example.com" } }, "id" : "hal-cookbook" , "nombre" : "HAL Cookbook" }                                                    

Véase también

Referencias

  1. ^ Kelly, Mike (7 de junio de 2012). "JSON Hypertext Application Language". IETF . Consultado el 16 de octubre de 2018 .
  2. ^ Richardson, Leonard; Ruby, Mike Amundsen; prólogo de Sam (2013). "7". API web RESTful (primera edición). Sebastopol, CA: O'Reilly. ISBN 978-1-4493-5806-8.{{cite book}}: CS1 maint: varios nombres: lista de autores ( enlace )
  3. ^ ab Kelly, Mike (13 de junio de 2011). "HAL - Hypertext Application Language A lean hypermedia type" (HAL: lenguaje de aplicación de hipertexto) . Consultado el 23 de julio de 2014 .

Enlaces externos