https://aws.amazon.com/ko/what-is/restful-api/
예를들어 서버에 데이터를 요청할때 우리가 HTTP를 사용하여 URL이라는 state로 JSON(또는 HTML / XML등 클라이언트가 사용할 수 있는)이라는 형태의 Representation을 가진 데이터를 요청할때, 이런게 RESTful API라고 할 수 있다.

진정한 REST가 되려면 로이 필딩이 그의 박사 논문에서 제안한 다음 6가지 제약 조건을 만족해야 한다고 한다.
마치 인간이 어떤 웹사이트의 홈페이지에 접속하면 그 사이트 내에서 이동할 수 있는 여러 링크들의 Navigation을 제공받는 것처럼, 구체적인 예를 들자면,
REST API도 만약 클라이언트에서 어떤 URL에 대한 요청을 보낸다면, 서버는 응답안에 해당 URL의 하위 path들에는 어떤 것들이 있는지 목록을(즉 개념으로 치면 자원resource에 대한 하이퍼링크를hyperlinks) 포함해야 한다는 것이다.
예를들어 클라이언트가 /accounts/12345 라는 URL에 요청을 한다면,
서버는 응답안에 다음과 같은 내용을 포함해야 한다.

보면 12345라는 account에서는 deposit, withdraw, transfer, close 동작을 수행할 수 있고, 또 각각의 실제 URL path 값까지 포함하고 있다.
⇒ 따라서 클라이언트가 각 URL을 하드코딩하지 않고 서버에서 제공하는 데이터를 통해 코드를 작성할 수 있고, 이게 HATEOAS가 의도하는 바다.
HATEOAS는 근데 실제로 지켜지는 경우가 거의 없다고 한다.