Why is HAL (Hypertext Application Language) deprecated and not widespread?
Asked Answered
I

1

7

Why is HAL deprecated an not widespread?

The main idea behind the HAL is to add an abstraction level above http endpoints. Instead of working with hardcoded addresses a concept of relations is used to add aliases to the endpoints. That allows for a lot of simplifications. E.g. when there are two teams working on two modules and the second team modifies endpoints used by the first team, the first team will have to do nothing if the parsing and address retrieval from HAL is automatic (which is easy to setup).

But I go to wiki and read:

the latest version of HAL Internet-Draft expired on November 12, 2016

So, I can not understand why the HAL did not get a widespread recognition and what is the alternative to it in modern distributed systems.

Of cource I am aware of the messaging systems, but they are platform dependent. So, the only other option I can think of is to use bare http addresses to implement the platform agnostic communication between the back-end systems, since http is supported by all (read almost all) technologies.

Please, do not treat my question as vague and ask questions in comments if something is not clear from what I wrote above. My question is clear:

1 HAL is a serious step forward for the development of web applications

2 There are no alternatives to it

3 It was deprecated and did not get a widespread recognition

1, 2 and 3 create a contradiction, so either one of these three should be wrong and I can not figure out which one.

Interplanetary answered 5/4, 2021 at 14:17 Comment(0)
C
9

Expired drafts don't necessarily mean that the spec is deprecated. This is just an automated system in IETF drafts, but lot of people do rely on specs that are 'expired' in IETF terms.

HAL is still being actively used and extended by many. A big recent push in the HAL-Forms extension for example: https://rwcbook.github.io/hal-forms/

The next logical step for the IETF draft is for it to become a true RFC, which never expires. Unfortunately I don't see this happening soon because there hasn't been enough interest by people to push this through.

It's also not true there are no alternatives. Some examples:

  • Siren
  • Collection+JSON
  • JSON-LD (possibly with Hydra extensions)
  • JSON Hyperschema

But from all these HAL is probably the most widely adopted still.

Centralization answered 5/4, 2021 at 15:20 Comment(2)
Just curious, maybe you know, how do engineers achieve the abstraction of different modules on big projects? Do they store the bare endpoints in one module to acces another?Interplanetary
@some1here i feel this question is missing a lot of context that might be more specific to what you're doing. If you want to see a simple example of how we do HAL, take a look here: github.com/badgateway/todo-apiCentralization

© 2022 - 2024 — McMap. All rights reserved.