Rest API Maturity Level and HATEOAS

Just read into an article about the maturity level of Rest API design, https://blog.restcase.com/4-maturity-levels-of-rest-api-design/

So basically,

Level0 – You are starting to use HTTP

Level1 – All are resources in your API design

Level2 – All are about Verb, post, put, delete, get, patch, option, etc.

Level3 – HATEOAS – Hypermedia As The Engine Of Application State.

One example of HATEOAS:

{
"name": "John Doe",
"links": [{
"rel": "self",
"href": "http://localhost:8080/users/123"
},
{
"rel": "posts",
"href": "http://localhost:8080/users/123/posts"
},
{
"rel": "address",
"href": "http://localhost:8080/users/123/address"
}
]
}

Currently one of the projects I am working on it is using the HATEOAS. We are building up a CRM project and using React to build the user interfaces. Then we embed the React into Android and iOS. Because of this design, we have to control the display and client logic from server. Hence, in the server API response, we have to tell clients (both of Android and iOS) what are the next steps, like it is a href and its URL.