Hypertext Application Language: Difference between revisions

Content deleted Content added
Internet drafts expire in six months after publishing and author, after republishing the draft several times in almost unchanged state - obviously abandoned it in 2016.
WikiCleanerBot (talk | contribs)
m v2.05b - Bot T20 CW#61 - Fix errors for CW project (Reference before punctuation)
 
(19 intermediate revisions by 15 users not shown)
Line 1:
{{Short description|Proposed computer definition standard}}
'''Hypertext Application Language''' ('''HAL''') is an [[Internet Draft]] (a "work in progress") standard convention for defining [[hypermedia]] such as links to external [[web resource|resources]] within [[JSON]] or [[XML]] code. It is documented in an [[Internet Draft]] (however,a please"work notein thatprogress"), with the latest version of11 HALpublished Internet-Draftthe expired10th onof NovemberOctober 12, 2016.)2023. The standard was initially proposed onin June 2012, specifically for use with JSON,<ref>{{cite web |last1=Kelly |first1=Mike |title=JSON Hypertext Application Language |url=https://tools.ietf.org/html/draft-kelly-json-hal-00 |publisher=IETF |accessdate=16 October 2018 |date=7 June 2012}}</ref> and has since become available in two variations, JSON and XML. The two associated [[MIME]] types are media type: application/hal+xml and media type: application/hal+json.<ref>{{cite book|last1=Richardson|first1=Leonard|last2=Ruby|first2=Mike Amundsen ; foreword by Sam|title=RESTful Web APIs|date=2013|publisher=O'Reilly|___location=Sebastopol, CA|isbn=978-1-4493-5806-8|edition=First|chapter=7}}</ref>
 
HAL was created to be simple to use and easily applicable across different [[___domain (software engineering)|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 [[library (computing)|libraries]] which can be easily incorporated on any [[API]] that uses HAL.{{Citation needed|Reasonreason=RFC4627 does not mention HAL|date=October 2018}}
 
APIs that adopt HAL simplify the use of [[open-source software|open source]] libraries and make it possible to interact with the [[application programming interface|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.<ref name="stateless">{{cite web|last1=Kelly|first1=Mike|title=HAL - Hypertext Application Language A lean hypermedia type|url=httphttps://stateless.cogroup/hal_specification.html|accessdate=23 July 2014|date=2011-06-13}}</ref>
 
== Convention ==
HAL is structured in such a way as to represent elements based on two concepts: Resources and Links. Resources consist of [[URI]] links, embedded resources, your standard data (be it JSON or XML), and non URI links. Links have a target URI, as well as the name of the link (referred to as 'rel'), as well as optional properties designed to be mindful of deprecation and content negotiation.<ref name="stateless"/>
 
==Example==
General Resource
<sourcesyntaxhighlight lang="json">
{
"_links": {
Line 20 ⟶ 21:
"name": "HAL Cookbook"
}
</syntaxhighlight>
</source>
Embedded resource
<sourcesyntaxhighlight lang="json">
{
"_links": {
Line 44 ⟶ 45:
"name": "HAL Cookbook"
}
</syntaxhighlight>
</source>
Collections
<sourcesyntaxhighlight lang="json">
{
"_links": {
Line 80 ⟶ 81:
"name": "HAL Cookbook"
}
</syntaxhighlight>
</source>
 
==See also==
Line 90 ⟶ 91:
 
==External links==
* [https://tools.ietf.org/html/draft-kelly-json-hal-0811 JSON Hypertext Application Language latest draft]
 
[[Category:JSON]]
Line 98 ⟶ 99:
[[Category:XML-based standards]]
[[Category:World Wide Web Consortium standards]]
 
 
{{Web-stub}}