일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- vue.js
- 리덕스
- 커스텀 로그인
- VUE
- AWS
- exiting abnormally
- ACCESS_REFUSED
- EBS
- Java Reflextion API
- 애그리거트
- rabbitmq 에러
- 도커빌드
- quert
- 컴포넌트 주도
- .getClass()
- 트리 회전
- 리덕스 공식문서
- forNmae()
- redux
- 자바
- 자료구조
- 오라클 병렬처리
- paraller
- REDIS
- Express
- 리액트
- 오라클
- $emit()
- react
- 네임드 뷰
- Today
- Total
개발정리
HATEOAS란? 본문
HATEOAS 란?
HATEOAS는 Hypermedia as the Engine of Application State를 의미합니다.
이것은 RESTful API 아키텍처의 컴포넌트 입니다.
HATEOAS를 사용함 으로써, 클라이언트 사이드는 어떻게 서버와 상호작용 하는지에 대한 최소한의 정보를 필요로 합니다.
이것은 네트워크 애플리케이션이 클라이언트의 요청들을 하이퍼미디어를 통해 동적으로 생성된 정보를 응답 하게 해줍니다.
HATEOAS를 통한 애플리케이션 상태 변화
HATEOAS를 사용할 때, 클라이언트는 간단히 STATIC,RESTful URL 호출을 통해 네트워크 애플리케이션의API를 접근할 수 있습니다.
이제,더 나아가서 클라이언트가 취할수 있는 행동은 original 호출에서 서버로 부터 응답받은 데이터에 의해
활성화 됩니다.
이것은 클라이언트가 한 애플리케이션 상태에서 다음 으로 가게 해줍니다. 서버로부터 응답받은 세부사항과 상호작용 함으로써,
응답에 들어있는 그 “데이터”는 상태를 변화 시킬 수 있는 단순한 하이퍼미디어 링크들입니다.
이것이 HATEOAS가 하이퍼미디어를 통해 애플리케이션의 상태 변화를 관리하는 방법입니다.
HATEOAS 예제
클라이언트가 직원의 급여에 대한 세부사항을 가져오기 위해서 네트워크 애플리케이션과 상호작용을 원한다고 생각해 보세요.
RESTful 호출은 다음과 같을 것 입니다.
GET /payroll/employee_123 HTTP/1.1
서버는 필요한 세부사항을 포함하는 JSON을 응답 할 것입니다.
게다가,그 응답에는 클라이언트가 할 수 있는 액션을 허용하게 해주는 하이퍼미디어 링크를 포함 할 것입니다.
예시는 다음과 같습니다.
HTTP/1.1 200 OK
Content-Type: application/+json
Content-Length: ...
{
"payroll": {
"employee_number": "employee_123",
"salary" : 1000,
"links": {
"increment": "/payroll/employee_123/increment",
"decrement": "/payroll/employee_123/decrement",
"close": "/payroll/employee_123/close"
}
}
}
우리는 위의 예시를 통해 관찰 할 수있습니다.
추가적인 정보는 “links”라는 타이틀 밑에 있다는 것을
이러한 링크들은 계좌를 닫거나 추가 훅은 삭감 하는 액션을 허용합니다.
참조
https://www.geeksforgeeks.org/hateoas-and-why-its-needed-in-restful-api/