REST API
- REpresentational State Transfer
- 자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미
- URI(Uniform Resource Identifier)을통해 자원을 명시하고 HTTP Method(POST, GET, PUT, DELETE)를 통해 자원에 대한 CRUD Operation을 적용하는 것
Hateoas
- Hypermedia As The Engine Of Application State
- 애플리케이션의 상태를 관리하기 위해 하이퍼미디어(링크)를 사용한다는 것
즉, 클라이언트와 서버가 동적인 상호작용이 가능하도록 하는 것을 의미
- 링크를 통해서 애플리케이션 상태 전이가 가능해야 하고
링크에 자기 자신에 대한 정보가 담겨야 한다. (요청에 필요한 URI를 응답에 포함시켜 반환)
- 예시
//출처 : https://wonit.tistory.com/454
{
"data": { // HAL JSON의 리소스 필드
"id": 1000,
"name": "게시글 1",
"content": "HAL JSON을 이용한 예시 JSON"
},
"_links": { // HAL JSON의 링크 필드
"self": {
"href": "http://localhost:8080/api/article/1000" // 현재 api 주소
},
"profile": {
"href": "http://localhost:8080/docs#query-article" // 해당 api의 문서
},
"next": {
"href": "http://localhost:8080/api/article/1001" // article 의 다음 api 주소
},
"prev": {
"href": "http://localhost:8080/api/article/999" // article의 이전 api 주소
}
}
}