- 이름부터가.. 너무 길다.... 뭐지..??
- 천천히 접근해보자
- HATEOAS는 REST API와 연관이 있다고 합니다.
- Rest API에서 R은 Resource...자원과 관련이 있나봅니다!
- 그래서 찾아 봤더니 HATEOAS는 서버와 클라이언트 관점에서 각각의 역할을 한다고 합니다.
- 서버: 현재 리소스와 연관된 링크 정보를 클라이언트에게 제공한다.
- 클라이언트: 연관된 링크 정보를 바탕으로 리소스에 접근한다.
- ObjectMapper 제공
- spring.jackson.*
- Jackson2ObjectMapperBuilder
- 음..그래도 뭔가 이해가 안갑니다.
- 그래서 구글링을 통해 이 블로그를 발견합니다.
- 예제를 보니 뭔가 팍 꽂힙니다.
전형적인 REST API 응답 데이터
{
"name": "jun"
}
HATEOAS 도입
{
"name": "jun",
"links": [
{
"rel": "self",
"href": "http://localhost:8080/user"
},
{
"rel": "delete",
"href": "http://localhost:8080/user/delete"
},
{
"rel": "update",
"href": "http://localhost:8080/user/update"
}
]
}
- 둘 차이를 아시겠나요??
- HATEOAS를 보면 name이 존재하기 때문에,
삭제(delete)
와 수정(update)
을 실행할 수 있는 API 엔드포인트를 확인이 가능합니다.
- 정리하자면 rel 이름만 알면 해당 기능의 실행 가능 여부를 판단할 수 있게 됩니다!
- 아래 참조 사이트에 자바 코드 예제나 설명이 자세히 나와있으니 시간이 있으시면 방문하는걸 추천합니다!
Reference