Hypertext Application Language
≈ 4 min read
Names in other languages
- DeutschHypertext Application Language
- EnglishHypertext Application Language
- FrançaisHypertext Application Language
- РусскийHypertext Application Language
Article bodies are English and are not machine-translated. A name in another language is not a translation of the article.
Hypertext Application Language (HAL) is a convention for defining hypermedia such as links to external resources within JSON or XML code. It is documented in an Internet Draft (a "work in progress"), with the latest version 11 published . The standard was initially proposed in June 2012, specifically for use with JSON, and has since become available in two variations, JSON and XML. The two associated MIME types are application/hal+xml and application/hal+json. HAL was created to be simple to use and easily applicable across different domains by avoiding the need to impose any requirements on how the project be structured. Maintaining this minimal impact approach, HAL has enabled developers to create general-purpose libraries which can be incorporated on any API that uses HAL. APIs that adopt HAL simplify the use of open source libraries and make it possible to interact with the API using JSON or XML. The alternative would be having to develop a proprietary format which in turn forces developers to learn how to use yet another foreign format.
Hypertext Application Language (HAL) is a convention for defining hypermedia such as links to external resources within JSON or XML code. It is documented in an Internet Draft (a "work in progress"), with the latest version 11 published . The standard was initially proposed in June 2012, specifically for use with JSON, and has since become available in two variations, JSON and XML. The two associated MIME types are application/hal+xml and application/hal+json. HAL was created to be simple to use and easily applicable across different domains by avoiding the need to impose any requirements on how the project be structured. Maintaining this minimal impact approach, HAL has enabled developers to create general-purpose libraries which can be incorporated on any API that uses HAL. APIs that adopt HAL simplify the use of open source libraries and make it possible to interact with the API using JSON or XML. The alternative would be having to develop a proprietary format which in turn forces developers to learn how to use yet another foreign format. ==Example== General Resource { "_links": { "self": { "href": "http://example.com/api/book/hal-cookbook" } }, "id": "hal-cookbook", "name": "HAL Cookbook" } Embedded resource { "_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" } Collections { "_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", "name": "Shahadat Hossain Khan", "homepage": "http://author-example.com" } }, "id": "hal-cookbook", "name": "HAL Cookbook" } ==See also== HATEOAS CURIE, (or Compact URI) ==External links== JSON Hypertext Application Language latest draft
Text derived from https://en.wikipedia.org/w/index.php?oldid=1368056439 under CC BY-SA 4.0; modifications have been made.